다음 메서드는 내가 추가 한 최신 항목 만 씁니다. 이전 항목에는 추가하지 않습니다. 내가 도대체 뭘 잘못하고있는 겁니까?PrintWriter 추가 메서드가 추가되지 않음
public void addNew() {
try {
PrintWriter pw = new PrintWriter(new File("persons.txt"));
int id = Integer.parseInt(jTextField.getText());
String name = jTextField1.getText();
String surname = jTextField2.getText();
Person p = new Person(id,name,surname);
pw.append(p.toString());
pw.append("sdf");
pw.close();
} catch (FileNotFoundException e) {...}
}
이 잠자는 스레드, 그것에 대해 유감을 각성 같다. 그러나 나는 의심한다. 어떻게 File 객체 만 주어진다면 파일에서 작업을 추가 할 수 있으며 Stream 클래스 (예 : FileOutputStream 등)를 사용할 수 없습니다. 내가 허용하는 것은 : Printwriter pw = new PrintWriter (file); : 나는 append(), write(), print()를 시도했다. 이 시나리오에서 추가 할 수있는 임의의 방법이 있습니까? –
설명에 따르면, PrintWriter의 'append()'메소드는 Writer에 추가되는 사실을 나타냅니다.e 파일 자체가 아닌 출력 스트림입니다. –
그리고 @ user1707035의 질문과 관련하여 아니오, PrintWriter를 사용하여 OutputStream 객체로 생성하지 않고 추가 할 수없는 것처럼 보입니다. 이는 PrintWriter가 인스턴스 생성시 스트림을 열고 File 또는 filename을 인수로 지원하는 유일한 생성자가 'append'매개 변수없이 OutputStream 객체를 내부적으로 생성함으로써 File을 열기 때문입니다. 참조 (docs) : https://docs.oracle.com/javase/7/docs/api/java/io/PrintWriter.html#PrintWriter(java.io.File) –