2014-03-26 1 views
0
try { 
     BufferedReader br = new BufferedReader(new FileReader("D:\\acontent.txt")); 
     String a=""; 
     int c; 
     Reader r = new InputStreamReader(br); 
     while((c=r.read())!=-1){ 
      a= a + Character.toString((char)c); 
     } 

파일에서 읽는 코드를 작성하고 문자열 전체 내용을 저장하려고하는데이 방법으로 만 수행하려는 경우 스캐너 클래스 또는 기타를 사용하고 싶지 않습니다. 방법 plz이 어디로 잘못 가고있는 방법을 제안합니다.버퍼링 된 입력기 및 입력 스트림과 혼동 됨

+0

어떤 문제가 발생 했습니까? – ikegami

+0

코드에서 두 개의 오류가 발생했습니다 ........ 생성자 InputStreamReader (BufferedReader)가 정의되지 않았습니다 ............ 생성자 BufferedInputStream (BufferedReader)이 정의되지 않았습니다 –

+1

음, 그렇습니다. 'InputStreamReader' 기본적으로'InputStream'을 로직으로 랩핑하여 바이트를 문자로 변환함으로써'Reader'로 변환합니다. 이미'리더 (Reader) '인 것으로부터 시도하고 구성하는 것은 의미가 없습니다. –

답변

0

아, 이것은 파일을 문자열로 변환하는 끔찍한 방법이지만,이 작업을 수행하는 다른 "방법"을 수락하지 않는다고 말하면서, 여기 너가.

try { 
     BufferedReader br = new BufferedReader(new FileReader("D:\\acontent.txt")); 
     String a = ""; 
     int c; 
     while ((c = br.read()) != -1) { 
      a = a + Character.toString((char) c); 
     } 
     System.out.println(a); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

그런데 소스 코드의 공백을 사용하십시오!

0

InputStreamReader는 BufferedReader보다 많은 기능을 제공하지 않으므로 사용할 필요가 없습니다.

try { 
    BufferedReader br = new BufferedReader(new FileReader("D:\\acontent.txt")); 
    StringBuilder strBuilder = new StringBuilder(); 
    String line = br.readLine(); 
    while(line != null){ 
     strBuilder.append(line); 
     line = br.readLine(); 
    } 
    return strBuilder.toString(); 
.... 

당신은 읽기() 메소드를 사용하여 하나 각 문자를 검색 할 경우

이, 당신이 직접을 FileReader를 사용할 수 있습니다 더 좋은 방법은 이런 식으로 뭔가해야 원하는 것을 할 수 있습니다.

Reader 인터페이스의 모든 구현에는 char을 반환하는 read() 메서드가 있습니다. BufferedReader에는 readLine() 메서드 만 있으면 전체 행을 반환 할 수 있습니다.