gpt4 book ai didi

java - 使用FileOutputStream写入的数据在重新启动程序后消失

转载 作者:行者123 更新时间:2023-12-01 15:34:27 24 4
gpt4 key购买 nike

我正在学习 java,我制作了一个简单的程序,该程序只需从 JTextField 读取值并使用 FileOutputStream 将其保存到文件中。
我的问题是:重新启动后数据无法读取(使用与 FileInputStream 相同的程序)是否正常?如果我在不终止程序的情况下阅读它,它就可以正常工作。
如何将数据永久写入文件?
编辑:
启动程序时似乎正在清理该文件。
这是代码:

public class Test extends JFrame
{
JTextField field;
JButton write;
JButton read;
File file;
FileOutputStream fOut;
FileInputStream fIn;
int x;

Test() throws IOException
{
setAlwaysOnTop(true);
setLayout(new BorderLayout());
field = new JTextField(4);
write = new JButton("Write");
read = new JButton("Read");
file = new File("save.txt");
if(!file.exists())
{
file.createNewFile();
}
fOut = new FileOutputStream(file);
fIn = new FileInputStream(file);
add(field);
add(write, BorderLayout.LINE_START);
add(read, BorderLayout.LINE_END);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(160,60);
write.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
x = Integer.parseInt(field.getText());
try
{
fOut.write(x);
System.out.println("Saving completed.");
fOut.flush();
}
catch(Exception exc)
{
System.out.println("Saving failed.");
}

}
});
read.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try
{
x = fIn.read();
fIn.close();
}
catch(Exception exc)
{
System.out.println("Reading failed.");
}
}
});
}
public static void main(String[] args) throws IOException
{
new Test();
}
}

最佳答案

确保您 flush()close() 流。

关于java - 使用FileOutputStream写入的数据在重新启动程序后消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9115354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com