기존 텍스트 파일에 추가 할 때 문제가 발생했습니다.Java PrintWriter가 닫힌 후 기존 .txt 파일에 추가되지 않습니다.
줄 텍스트를 추가하지 않는 것 같습니다. 지금까지 나는이 방법이있어 :
public static void addLine(File f, String line) {
try {
FileWriter fw = new FileWriter(f.getName(), true);
BufferedWriter buffer = new BufferedWriter(fw);
PrintWriter pw = new PrintWriter(buffer);
pw.println(line);
pw.close();
} catch (IOException e) {
System.err.println("IOException: " + e.getMessage());
}
}
을 내 주에 나는 다음있어 : 나는이 프로그램을 실행하면
public static void main(String[] args) {
File f = new File("adresOfFile");
if (f.exists() && !f.isDirectory()) {
System.out.println("File " + f.getName() + " exists!");
System.out.println("\n" + "Path: " + f.getAbsolutePath());
System.out.println("\n" + "Parent: " + f.getParent());
System.out.println("\n" + "--------------CONTENT OF FILE-------------");
addLine(f, "");
addLine(f, "The line to append");
try {
displayContent(f);
} catch (IOException e) {
System.out.println(e.getMessage());
}
} else {
System.out.println("File not found");
}
}
이 오류를 제공하지 않는 것 같습니다. 프로그램을 실행하면 (addLine)을 추가 한 후에 수행되는 기존 텍스트 (displayContent)가 인쇄됩니다. 하지만 실행하면 추가 된 줄이없는 기존 텍스트 만 표시됩니다.
텍스트 파일에도 표시되지 않습니다. 나는 System.out.println()을 넣으려고했다. 메서드에서, 그리고 그것을 인쇄, 그래서 제대로 실행하는 방법을 알고 그냥 추가하지.
편집 AWNSER는 : F와 f.getName()를 교체하고, pw.close 전에 pw.flush 추가()
파일을 볼 때 아무 것도 변경되지 않았으므로 아무 줄도 추가되지 않았습니다. 연속 라인이 없으므로 빈 라인과 테스트 라인을 추가하면됩니다. – asdfgh
출력은 얼마나됩니까? 파일의 이름/경로를 쓰고 있습니까? 코드가 저에게 효과적입니다. 다음은 [link]입니다 (https://gist.github.com/vedharish/abefb0705e91e4ac28ac) 이 코드는 moja.java 파일과 동일한 위치에 파일 'a'를 추가합니다. –
그리고 FileWriter (String, boolean) 대신 [FileWriter (File file, boolean append)] (http://docs.oracle.com/javase/7/docs/api/java/io/FileWriter.html) 생성자를 사용하십시오. 그리고 pw.close() 전에 pw.flush()를 수행하십시오. –