簡體   English   中英

在Java中序列化並保存一個double []的ArrayList

[英]Serialize and Saving an ArrayList of double [] in Java

我想序列化並保存一個包含Java中的double [] arraylist的arraylist。 這是我的代碼。

FileOutputStream fileOutputStream = null; 
ObjectOutputStream objectOutputStream = null; 
FileInputStream fileInputStream = null; 
ObjectInputStream objectInputStream = null; 

public void writeArrayListToFile(ArrayList<ArrayList<double []>> arraylist, String outputFilePath){

    System.out.println("Start saving the file at  : " + outputFilePath);

    try {
        fileOutputStream = new FileOutputStream(outputFilePath , true);
        objectOutputStream = new ObjectOutputStream(objectOutputStream);
        objectOutputStream.writeObject(arraylist);
        System.out.println("Arraylist Saved Successfully...");
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }       
}

但是我收到一個錯誤,下面是堆棧跟蹤。

線程“ AWT-EventQueue-0”中的異常java.io.ObjectOutputStream $ BlockDataOutputStream.drain(java.io.ObjectOutputStream $ BlockDataOutputStream.setBlockDataMode(Unknown Source)處的java.io.ObjectOutputStream $ java.lang.NullPointerException。 (未知來源)com.fyp.imur2(JPanelJFreeChart.java:380)com.fyp.imur2.JPanelJFreeChart.btnSaveGestureCollectionActionPerformed(JPanelJFreeChart.java:380)com.fyp.imur2.SaveArrayListToFile.writeArrayListToFile(SaveArrayListToFile.java:24) JPanelJFreeChart.java:375)(位於com.fyp.imur2.JPanelJFreeChart $ 6.actionPerformed(JPanelJFreeChart.java:166)位於javax.swing.AbstractButton.fireActionPerformed(未知源),javax.swing.AbstractButton $ Handler.actionPerformed(未知源)在javax.swing.DefaultButtonModel.fireActionPerformed(未知源)在javax.swing.DefaultButtonModel.setPressed(未知源)在javax.swing.plaf.basic.BasicButtonListener.mouseReleased(未知源)在java.awt.Component.processMouseEvent(Unkn javax.swing.JComponent.processMouseEvent(未知源)java.awt.Component.processEvent(未知源)java.awt.Container.processEvent(java.awt.Component.dispatchatchEventImpl(未知源) )處java.awt.LightweightDispatcher.processMouseEvent(未知源)處java.awt.Component.dispatchEventImpl(未知源)處java.awt.LightweightDispatcher.retargetMouseEvent(未知源)處的java.awt.Container.dispatchEventImpl(未知源) java.awt.Component.dispatchEvent(未知源)處java.awt.Window.dispatchEventImpl(未知源)處java.awt.Container.dispatchEventImpl(未知源)處的java.awt.LightweightDispatcher.dispatchEvent(未知源)。 awt.EventQueue.dispatchEventImpl(未知源)在java.awt.EventQueue.access $ 200(未知源)在java.awt.EventQueue $ 3.run(未知源)在java.awt.EventQueue $ 3.run(未知源) .security.AccessController.doPrivileged(原生方法),位於java.security.ProtectionDomain $ 1.doInt ersectionPrivilege(未知源)(位於java.security.ProtectionDomain $ 1.doIntersectionPrivilege(未知源)在java.awt.EventQueue $ 4.run(未知源)在java.awt.EventQueue $ 4.run(java.security.AccessController處) .doPrivileged(本機方法)(java.security.ProtectionDomain $ 1.doIntersectionPrivilege(未知源)在java.awt.EventQueue.dispatchEvent(未知源)在java.awt.EventDispatchThread.pumpOneEventForFilters(未知源)在java.awt.EventDispatchThread。 java.awt.EventDispatchThread.pumpEvents(未知源)處java.awt.EventDispatchThread.pumpEvents(未知源)處java.awt.EventDispatchThread.pumpEvents(未知源)處java.awt.EventDispatchThread.run(未知源)來源不明)

有人可以幫我解決這個問題嗎? 任何幫助,將不勝感激。 提前致謝。

在構造ObjectOutputStream的實例時需要傳遞fileOutputStream

objectOutputStream = new ObjectOutputStream(fileOutputStream);

在線上

objectOutputStream = new ObjectOutputStream(objectOutputStream);

您嘗試使用objectOutputStream對象調用構造函數,該對象為null。 看起來您打算用fileOutputStream調用它,如下所示:

objectOutputStream = new ObjectOutputStream(fileOutputStream);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM