使用java.io在文本文件中只保存了一个对象
我开始为我的类开发一个应用程序,它有一个请求,我需要将列表中的对象保存到.txt文件中。它似乎在工作,但当我这样做时,它只保存了我输入的一个对象。我不知道解决办法是什么。我的代码如下。另外,我正在使用gui将我的对象添加到列表中使用java.io在文本文件中只保存了一个对象,java,list,object,java-io,Java,List,Object,Java Io,我开始为我的类开发一个应用程序,它有一个请求,我需要将列表中的对象保存到.txt文件中。它似乎在工作,但当我这样做时,它只保存了我输入的一个对象。我不知道解决办法是什么。我的代码如下。另外,我正在使用gui将我的对象添加到列表中 List<Korisnik> listaK=Kontroler.vratiObjekatKontroler().vratiKorisnika(); try { FileOutputStream fos = new FileOutpu
List<Korisnik> listaK=Kontroler.vratiObjekatKontroler().vratiKorisnika();
try {
FileOutputStream fos = new FileOutputStream(new File("output.txt"));
ObjectOutputStream out= new ObjectOutputStream(fos);
for (int i = 0; i < listaK.size(); i++) {
out.writeObject(listaK.get(i));
out.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
List listaK=Kontroler.vratiObjekatKontroler().vratiKorisnika();
试一试{
FileOutputStream fos=新的FileOutputStream(新文件(“output.txt”);
ObjectOutputStream out=新的ObjectOutputStream(fos);
对于(int i=0;i
用于(int i=0;i
写入第一个对象后,将关闭输出流。这样,您就不能在其中写入任何其他内容。将out.close()
移出for
循环。for(int i=0;i
写入第一个对象后,将关闭输出流。这样,您就不能在其中写入任何其他内容。将
移出.close()
移出for
循环。您正在关闭for循环内的流。我建议:
FileOutputStream fos = null;
ObjectOutputStream out = null;
try {
fos = new FileOutputStream(new File("output.txt"));
out= new ObjectOutputStream(fos);
for (int i = 0; i < listaK.size(); i++) {
out.writeObject(listaK.get(i));
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (out != null) out.close;
if (fos != null) fos.close;
}
FileOutputStream=null;
ObjectOutputStream out=null;
试一试{
fos=新文件输出流(新文件(“output.txt”);
out=新对象输出流(fos);
对于(int i=0;i
您正在关闭for循环中的流。我建议:
FileOutputStream fos = null;
ObjectOutputStream out = null;
try {
fos = new FileOutputStream(new File("output.txt"));
out= new ObjectOutputStream(fos);
for (int i = 0; i < listaK.size(); i++) {
out.writeObject(listaK.get(i));
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (out != null) out.close;
if (fos != null) fos.close;
}
FileOutputStream=null;
ObjectOutputStream out=null;
试一试{
fos=新文件输出流(新文件(“output.txt”);
out=新对象输出流(fos);
对于(int i=0;i
希望您使用的至少是Java SE 7:)您可以利用它,这样您就不必关心关闭“资源”:
试试(
FileOutputStream fos=新的FileOutputStream(新文件(“output.txt”);
ObjectOutputStream out=新的ObjectOutputStream(fos)
){
对于(int i=0;i
try with resources语句包含用分号分隔的
FileOutputStream
和ObjectOutputStream
对象声明。当直接跟随它的代码块终止时(正常终止或由于异常终止),将按此顺序自动调用FileOutputStream
和ObjectOutputStream
对象的close方法。请注意,资源的close方法的调用顺序与它们的创建顺序相反。希望您至少使用Java SE 7:)您可以利用它,因此您不需要关心关闭“资源”:
试试(
FileOutputStream fos=新的FileOutputStream(新文件(“output.txt”);
ObjectOutputStream out=新的ObjectOutputStream(fos)
){
对于(int i=0;i
try with resources语句包含用分号分隔的
FileOutputStream
和ObjectOutputStream
对象声明。当直接跟随它的代码块终止时(正常终止或由于异常终止),将按此顺序自动调用FileOutputStream
和ObjectOutputStream
对象的close方法。请注意,资源的封闭方法的调用顺序与它们的创建顺序相反。天哪,我似乎要发疯了。非常感谢。天哪,我好像要发疯了。非常感谢。我想是时候利用资源进行尝试了我认为是时候利用资源进行尝试了
;)
try (
FileOutputStream fos = new FileOutputStream(new File("output.txt"));
ObjectOutputStream out= new ObjectOutputStream(fos)
){
for (int i = 0; i < listaK.size(); i++) {
out.writeObject(listaK.get(i));
}
} catch (IOException ex) {
ex.printStackTrace();
}