2012-08-13 2 views
0

이것은 내 코드입니다 .. 단추를 누를 때만 파일에 줄을 쓸 수 있지만, 다시 누르면 Characters의 새 집합 인 경우 이전의 문자 만 삭제하고 새로운 char 집합을 저장합니다. 나는 .. 다른 라인매번 파일에 문자열 줄을 쓰는 방법 "쓰기"단추를 누르십시오

당신은 생성자를 통해 추가 할 FileWriter를 설정해야
package datasaving; 

import java.awt.HeadlessException; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.io.File; 
import java.io.FileWriter; 
import java.io.IOException; 
import javax.swing.*; 


public class Datasaving { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     JPanel panel = new JPanel(); 
     JFrame frame = new JFrame(); 
     final JTextField input = new javax.swing.JTextField(20); 

     JButton save = new javax.swing.JButton("Write"); 

     frame.add(panel); 
     frame.setSize(200,200); 
     panel.add(input); 
     panel.add(save); 


     frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
     frame.setVisible(true); 

     save.addActionListener(new ActionListener() { 
          @Override 
          public void actionPerformed(ActionEvent e) { 
           File file = new File("data.dat"); 

    try { 
      try (FileWriter writer = new FileWriter(file)) { 

       writer.write(input.getText()+"\n"); 

      } 
     System.out.println("Game saved"); 
    } catch (IOException | HeadlessException z) { 
     JOptionPane.showMessageDialog(null, e); 
    } 

          } 
         }); 


    } 
} 
+2

'FileWriter'의 생성자는 덮어 쓰는 대신 ** append **에 사용할 수있는 두 번째 매개 변수 인'boolean append'를 허용합니다. 기본적으로,'FileWriter writer = new FileWriter (file, true)'를 사용하십시오. – Aziz

답변

1

와우, 한 문장에서 많은 일이 발생합니다. 그것을 처리하는 나의 가장 좋아하는 방법은 아니지만 그것은 질문이 아니 었습니다. :-) 새로운 파일 작성기를 만들면 새로운 파일이 만들어져 한 줄의 텍스트 만 볼 수있게됩니다.

API 살펴보기 - 추가 할 것인지 아닌지에 대한 부 울린을 취하는 FileWriter의 생성자가 있습니다. 대신에 그것을 사용하고 싶습니다.

또 다른 옵션은 파일을 한 번 열고 다음을 누르면됩니다. 각 파일을 열거 나 닫을 때 다른 파일러를 사용하는 것이 더 좋습니다.

+0

당신은 제가 여러분에게 질문 한 방식으로 사람들을 볼 수 있습니다. 프로그래밍 언어 "Java"분야의 초보자처럼 보입니다. 나는 단지 자발적으로 공부하고 있습니다. 하지만 감사합니다 얘들 아! – JFetz2191

+0

문제 없음 - Java API가 자기 학습을하는 동안 가장 친한 친구 여야합니다. API에 익숙하지 않은 일부 사람들은 ctors를 건너 뛰고 메소드 목록으로 이동하지만, 항상 이러한 종류의 오버로드 된 ctors를 확인하는 것을 잊지 마십시오 그 일을 처리 할 수있는 좋은 방법이 있기 때문입니다. 종종 어려운 부분은 "FileWriter"가 원하는 클래스라는 사실을 알아내는 것이지만, 일단 알게되면 필요한 거의 모든 것이 API에 있습니다. 행운을 빕니다! – daroo

2

을 삭제하지 않고 매번 내가 버튼을 누르면이 다른 라인에서 문자를 작성하는 방법을 모르는

FileWriter writer = new FileWriter(file, true) 

docs

관련 문제