这是我的代码..当我按下按钮时,它只能在文件中写一行但是,如果我再次使用一组新的字符按下它,它只删除旧的并存储新的字符集。每次按下按钮而不删除其他行
时,我不知道如何使字符写成不同的行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);
}
}
});
}
}
答案 0 :(得分:2)
答案 1 :(得分:1)
查看API - 有一个FileWriter的构造函数,它接受是否附加的布尔值。你想要使用它。
另一个选择是打开文件一次,然后每按一次就写入它。如果你想在每次写入时打开/关闭文件,那么使用另一个ctor是更好的方法。