java - 从不同类中的文件读取和写入,而无需关闭java中的流

标签 java file stream dataoutputstream

嘿大家:]只是想知道是否可以从不同类的文件中读取和写入,而不必关闭流并重新开始?

我需要使用DataOutputStreamDataInputStream。我目前有 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/

相关文章:

java - 使用循环从 url 加载图像

java - 系统找不到路径

java - Java Bean 类通常具有比 getter/setter 更多的功能吗?

c - C 文件中的位数不均匀

自制arrayList中的Coredump

java - 使用 vlcj 从文件夹流式传输多个文件

java - 为什么我的应用程序上不断收到 “Unfortunately, <App> has stopped”? (Java,Android Studio)

java - 将 Hudson 作业移至另一台服务器

java - 未报告的异常 java.io.FileNotFoundException;?

java - 缓冲输入流中标记读取限制的用途是什么