みなさん、こんにちは:]ストリームを閉じて最初からやり直すことなく、異なるクラスのファイルから読み書きできるかどうか疑問に思っていますか?
と を使用する必要が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
、2 番目のクラスに設定すると、各オブジェクトが上書きされます。この問題の簡単な解決策はありますか?