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