Я изучаю java, и я создал простую программу, которая просто считывает значение из JTextField и сохраняет его в файл с помощью FileOutputStream.
Мой вопрос: нормально ли данные быть нечитаемыми (используя ту же программу с FileInputStream) после перезапуска? Если я прочитал его без прерывания программы, он отлично работает.
Как я могу записать данные в файл permment?
Редактировать:
Кажется, файл очищается при запуске программы.
Вот код:Данные, записанные с использованием FileOutputStream, исчезают после перезапуска программы
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();
}
}
Можно ли увидеть какой-нибудь код? – Marcelo
Вы открыли файл и видите там какие-либо данные? Данные должны быть там, он не должен удаляться при перезагрузке. Без кода трудно сказать, что происходит. – kosa
fOut = new FileOutputStream (файл); становится fOut = new FileOutputStream (файл, true); – tartak