2012-11-07 3 views
0

필자는 많은 다른 것들을 시도하고 이것이 내가 그래서이 텍스트를로드 할 수로드 기능을 만들려고하고 지금까지 파일에서 한 줄을 읽는 일했다 유일한 것은 ...파일에서 여러 줄을 jTextArea에 넣을 문자열로 읽는 방법은 무엇입니까?

try{ 

     FileInputStream fstream = new FileInputStream("./Saves/Body.sav"); 
     BufferedReader br = new BufferedReader(new InputStreamReader(infstream); 
     String strLine;  
     while ((strLine = br.readLine()) != null) {  
     System.out.println(strLine); 
     w1.Body = strLine; 
     } 
     in.close(); 
      }catch (Exception e){//Catch exception if any 
     System.err.println("Error: " + e.getMessage()); 
     } 

입니다 나는 개인적으로 Guava을 사용하십시오 OpenFileDialog를

답변

5

모든 종류을 사용하지 않고 JTextArea에 위에 문자열 ...에 파일 : 그것을 가정 것

File file = new File("Saves", "Body.sav"); 
String text = Files.toString(file, Charsets.UTF_8); 

은 물론, UTF-8 파일입니다. 그에 따라 조정하십시오.

  • 그것은
  • 당신 아마 당신은 지정하지 않는 BufferedReader
  • 를 사용 많이 얻을 수없는 명백한 이유로 DataInputStream를 만듭니다

    현재 코드는 문제의 번호를 가지고 문자 인코딩, 그래서 당신은 플랫폼의 기본, 암시 적으로, 거의 절대 좋은 생각이 아닙니다. 당신은 어떤 이유로 입력의 체인의 중간에 in을 폐쇄하고

  • 은 ... 나도 br 또는 fstream
  • 예외가 존재하지 않는 경우에만 in을 폐쇄하고
  • 의 (a를 사용 닫 기대 finally 블록 또는 당신이 Exception보다는 IOException를 잡는 것
  • 자바 명명 규칙을 위반,
  • 당신은 필드가 Body라는 가지고있는 것 같습니다) 자바 7을 사용하는 경우 시도 -과 - 자원 문 - 특정 잡으려고 선호 예외
  • 효과적으로 무시함으로써 예외를 "처리"합니다. 이는 거의 이 아니며이 적절합니다. (파일을 읽는 코드는 예외로 무엇을 결정할 권리 코드는 매우 드물다.)
+0

Asker가 Java에 익숙하지 않은 것으로 보입니다. 귀하의 대답이 실제로 도움이되지 않는다고 생각됩니다. 어쩌면 누군가가 당신의 답을 미래에 비틀 거리고 유용하다고 생각할 것입니다. –

+0

이것은 통찰력이 있습니다! –

+3

@AlexLynch : 기존 코드에 잘못된 점을 추가했지만 필자는 새로운 사용자에게 라이브러리 재구성을 피하는 데 도움이되는 새로운 사용자를 가르치는 것이 아마도 가장 많은 이점을 가진 접근이라고 생각합니다. . –

1

당신은 StringBuilder (또는 동기화 된 버전 StringBuffer)를 사용하고 그것에 strLine를 추가 유지할 수 있습니다.

StringBuilder s = new StringBuilder(); 

while 루프 : 나는 ... JTextArea에 넣어 읽기 어떻게

s.append(strLine + "\n"); 
+0

당신은 분명히 이것을 할 수 있습니다. -하지만 선을 함께 결합하는 경우, 선을 한 줄씩 읽는 것이 무의미한 것처럼 보입니다. 그것은 라인 엔딩을 표준화합니다. –

3

이런 식으로 선언?

해당 진술 전체를 무시하고 제안합니다.

File file = new File("./Saves/Body.sav"); 
FileReader fileReader = new FileReader(file); 
textArea.read(fileReader, file); 
관련 문제