Java 将ArrayList写入文件时发生异常

Java 将ArrayList写入文件时发生异常,java,Java,我在用java将ArrayList写入文件时遇到问题。下面的程序正在将错误保存到文件中,而不是我试图保存的数据 下面是我正在使用的代码。有人能指出我做错了什么吗 package mytracker; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.util.List; import javax.swing.JOptionPane

我在用java将
ArrayList
写入
文件时遇到问题。下面的程序正在将错误保存到文件中,而不是我试图保存的数据

下面是我正在使用的代码。有人能指出我做错了什么吗

package mytracker;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.List;
import javax.swing.JOptionPane;

public class ExportContacts 
{
    private ObjectOutputStream OP;

    private void openFileOut(String path)
    {
        try
        {
            OP = new ObjectOutputStream(new FileOutputStream(path + ".dat"));
        }
        catch (IOException e)
        {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void AddContacts(List<Contact> contacts)
    {
        try
        {
            for(int i=0;i<contacts.size();i++)
            {
                OP.writeObject(contacts.get(i));
            }
        }
        catch (IOException e)
        {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void CloseFileOut()
    {
        try 
        {
            if(OP!=null)
                OP.close();
        }
        catch (IOException e) 
        {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    public void ExportConacts(String path,List<Contact> contacts)
    {
        openFileOut(path);
        AddContacts(contacts);
        CloseFileOut();
    }
}
包mytracker;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入java.io.ObjectOutputStream;
导入java.util.List;
导入javax.swing.JOptionPane;
公共类导出联系人
{
私有对象输出流;
私有void openFileOut(字符串路径)
{
尝试
{
OP=新的ObjectOutputStream(新的FileOutputStream(路径+“.dat”));
}
捕获(IOE异常)
{
showMessageDialog(null,e.getMessage());
}
}
私人void AddContacts(列出联系人)
{
尝试
{

对于(int i=0;iA.
Contact
必须实现
Serializable
(您尚未显示
Contact
的代码)

B.不要序列化每个
联系人
,只序列化整个
列表

引发了什么类型的
异常
?文件中的错误消息可能有用。我的水晶球说联系人没有实现java.io.Serializable接口。@maurício很可能是,不知道没有该代码或异常/错误消息ge@Omar-欢迎来到stackoverflow。以后,一定要包括错误消息和stacktrace。如果人们不得不猜测,回答你的问题需要更长的时间;)我想你一定有一个非常可靠的水晶球?
private void ExportButtonMouseClicked(java.awt.event.MouseEvent evt) 
{
    try
    {             
        JFileChooser fileChooser=new JFileChooser();
        //fileChooser.setFileFilter(new filter());
        fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
        int result=fileChooser.showSaveDialog(this);

        if(result!=JFileChooser.CANCEL_OPTION)
        {
            String path= fileChooser.getSelectedFile().getPath();
            ExportContacts ex=new ExportContacts();
            //CL is object of the class that save the contacts
            List<Contact> c=CL.getContactsList();
            ex.ExportConacts(path, c);
            JOptionPane.showMessageDialog(null, "Contacts Exported Successfully !");
        }
    }
    catch (Exception e) 
    {
        JOptionPane.showMessageDialog(null, e.getMessage());
    }
}