嘿大家:]只是想知道是否可以从不同类的文件中读取和写入,而不必关闭流并重新开始?
我需要使用DataOutputStream
和DataInputStream
。我目前有 2 个类,我的第一个类应该将所有对象写入文件。取决于它是什么类型的物体。我将把对象发送到另一个类,它将继续写入。
问题是,要么我只会在流关闭之前写入 1 个对象,并且无法继续写入下一个对象,要么每个对象都会覆盖最后一个对象。
public int skrivTilFil( String filnavn)
{
try{DataOutputStream input = new DataOutputStream(new FileOutputStream(filnavn)))
{
Bok løper = første;
{
while(løper != null)
{
if(løper instanceof Skolebok)
{
Skolebok bok = (Skolebok) løper;
bok.skrivObjektTilFil(input);
}
løper = løper.neste;
}
}
}
}
public void skrivObjektTilFil(DataOutputStream output) // skolebok class
{
try
{
output.writeUTF("Skolefag");
output.writeInt(klassetrinn);
output.writeUTF(skolefag);
super.skrivObjektTilFil(output);
}catch(IOException e)
{
System.out.println("General I/O exception: "
e.getMessage());e.printStackTrace();
}
}
这里我会得到IOException
,因为流已关闭,所以我无法继续下一个对象,但是如果我在第二个类中设置DataOutputStream
,我将覆盖每个对象。有没有简单的解决方案来解决这个问题?
最佳答案
您需要附加到FileOutputStream
。
您应该修改其创建,如下所示:
...
try{DataOutputStream input = //append
new DataOutputStream(new FileOutputStream(filnavn,true)))
...
关于java - 从不同类中的文件读取和写入,而无需关闭java中的流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14898014/