0
import java.io.*; 

public class Streams { 
    public static void main(String[] args) { 
     File homedir = new File(System.getProperty("user.home")); 
     File is = new File(homedir, "java/in.txt"); 
     BufferedReader br = new BufferedReader(new InputStreamReader(is)); 
     int value = 0; 
     while ((value=br.read())!=-1) { 
      char c = (char) value; 
      System.out.println(c); 
     } 
    } 
} 

의 BufferedReader BR = 새로운 의 BufferedReader (새로운 InputStreamReader (7 호선에서) 내가 Streams.java이생성자 InputStreamReader (파일) 정의되지

오류와 같은 오류가 발생하고 위의 프로그램을 컴파일하는 동안 (is)); ^^^^^^^^^^^^^^^^^^^^^^^^^

생성자 InputStreamReader (파일)이 정의되지


친절하게 도와 이 문제에서 나는 자바를 1.7.0_51 버전, 사전

답변

1

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(is))); 에서 OS linux Deepin

감사를 사용하고 그것은 작동합니다.

+0

아무것도 선생님 – Selva

+0

을 발생하지 않습니다 그리고 당신은 여전히 ​​같은 예외를 가지고; Files, Paths, FileSystems, 등 등

(자세한 내용은 JonSkeet의 대답 @ 확인하고 시도 -과 - 자원 문을 사용하여 편집)를 참조하십시오? – Antoniossss

+0

당신의 길을 컴파일하는 동안 FileNotFound와 IOexception 선생님 – Selva

2

네, 맞습니다. documentation for InputStreamReader을 보면 File 매개 변수를 사용하는 생성자를 찾을 수 없습니다.

대신 파일에서 읽어 FileInputStream를 구성하고, InputStreamReader의 생성자에 을 통과해야한다. 사용할 인코딩을 지정해야합니다. 그렇지 않으면 플랫폼 기본 인코딩이 사용됩니다.

또한주의 :

당신은 자동으로
  • 내가 이름을하지 않을 자원을 닫습니다 시도 -과 - 자원 문을 사용한다
    • File 변수 is - 더 소리 당신은 그것을 기대처럼 InputStream이됩니다. 그래서 예를 들어

    :

    File file = new File(homedir, "java/in.txt"); 
    try (BufferedReader br = new BufferedReader(new InputStreamReader(
         new FileInputStream(file), StandardCharsets.UTF_8))) { 
        int value = 0; 
        while ((value = br.read()) != -1) { 
         char c = (char) value; 
         System.out.println(c); 
        } 
    } 
    

    (또는 FGE의 대답에 따라, Files API를 사용합니다.)

  • +0

    @Selva : "오류가 발생했습니다."오류가 무엇인지 알려주지 않습니다. 컴파일러가 'StandardCharsets'을 찾을 수 없기 때문에 그렇다면 가져 오기가 필요합니다.'import java.nio.charset.StandardCharsets;') –

    +0

    @JohnSkeet 해결 방법을 찾는다 – Selva

    +0

    @Selva : 오류가 무엇인지 말하지 않을 때 어떻게 해결책을 찾도록 도와 줄 수 있습니까? –

    3

    을 당신은 자바 7을 사용하여?

    그런 다음 :

    Files.newBufferedReader(Paths.get(System.getProperty("home.dir") 
        .resolve("java/in.txt")), StandardCharsets.UTF_8); 
    

    당신은 자바 7을 사용하여? File 전체 삭제