파일 (Java 소스 파일)을 읽는 프로그램을 작성하고 해당 파일에서 지정된 값의 Arraylist를 만듭니다. Arraylist를 다른 결과 파일로 출력합니다.Java에서 PrintWriter를 사용하여 파일 만들기 및 해당 파일에 쓰기
새로운 결과 파일을 만들기 위해 PrintWriter를 사용하고 있습니다. 이건 내 프로그램의 요약 버전 :
ArrayList<String> exampleArrayList = new ArrayList<String>();
File actualInputFile = new File("C:/Desktop/example.java");
PrintWriter resultingSpreadsheet= new PrintWriter("C:/Desktop/SpreadsheetValues.txt", "UTF-8");
FileReader fr = new FileReader(actualInputFile);
BufferedReader br = new BufferedReader(fr);
String line=null;
while ((line = br.readLine()) != null) {
// code that makes ArrayList
}
for (int i = 0; i < exampleArrayList.size(); i++) {
resultingSpreadsheet.println(exampleArrayList.get(i));
}
resultingSpreadsheet.close();
문제는 내가이 프로그램을 실행할 때, 아무것도 resultingSpreadsheet에 인쇄 않겠다는 것이다. 그것은 완전히 비어 있습니다.
하지만,이 프로그램은 내가 교체 할 때 (가 resultingSpreadsheet 파일에 제대로 모든 것을 출력을 의미) 완벽하게 작동합니다 :
File actualInputFile = new File("C:/Desktop/example.java");
내가 내 입력 파일로 원하는 파일 인, 그리고이있는 정말 된 .java 소스 파일의 단지 작은 예 .txt 인 버전입니다, 그것은 1.08 KB의 크기가
File smallerInputFile = new File("C:/Desktop/smallerExample.txt");
481 KB,와 의 크기입니다.
PrintWriter를 플러시하고, FileWriter를 감싸며, .java 파일의 모든 코드를 확장 파일에 텍스트 파일로 복사하여 복사하는 등 몇 가지 시도를 해봤지만 문제는 아닙니다. 일하다. PrintWriter가 만드는 파일의 크기 때문에 필히 필 요하다고 생각하기 시작했으나 문제가되지 않을 수도 있습니다. 아마도 나는 모든 것을 스트림에 담을 필요가 있습니다 (여기에 : http://docs.oracle.com/javase/6/docs/api/java/io/PrintWriter.html)? 그렇다면 어떻게해야합니까?
더 큰 actualInputFile을 읽고 데이터를 올바르게 출력하는 이유는 무엇입니까? smallerInputFile이 제대로 작동하면 어떻게됩니까? 누구든지 도움이 될 수 있습니까?
예외 처리 방법을 표시하지 않았습니다. 자바 파일을 가지고 있습니까? –