[英]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.