将ArrayList从服务器传递到客户端Java(问题)

将ArrayList从服务器传递到客户端Java(问题),java,multithreading,sockets,serialization,Java,Multithreading,Sockets,Serialization,这可能是一个愚蠢的问题,我不知道,但似乎我被困在这里 所以我有一个服务器,在其中我在一个数组列表中添加了一些元素,如下所示 ArrayList<Accounts> acc= new ArrayList<>(); oos.writeObject(acc); oos.flush(); 如果ISystem.out.println(acc)它显示一切都很好 在客户端,我只是使用了如下内容: ArrayList<Accounts> obj; obj = (Arr

这可能是一个愚蠢的问题,我不知道,但似乎我被困在这里

所以我有一个服务器,在其中我在一个数组列表中添加了一些元素,如下所示

ArrayList<Accounts> acc= new ArrayList<>();
oos.writeObject(acc); 
oos.flush();
如果I
System.out.println(acc)它显示一切都很好

在客户端,我只是使用了如下内容:

ArrayList<Accounts> obj;

obj = (ArrayList <Accounts> )ois.readObject();
我认为服务器由于某种原因无法发送列表,是的,我的帐户类是可序列化的

会喜欢一些输入


编辑:我找到了它,它不是oos,而是ooos…

查看我在应用程序中使用的代码

public void run() {
        try {
            din = new DataInputStream(socket.getInputStream());
            names.add(din.readUTF());   // store the user name in arraylist
            Iterator iter = list.iterator();
        Socket socket;

        while (iter.hasNext()) {
            socket =  (Socket) iter.next(); // creating ArrayList to be written on the stream
            dout = new DataOutputStream(socket.getOutputStream());
            ObjectOutputStream obj = new ObjectOutputStream(dout);
            obj.writeObject(names); //write the list of users in stream of all clients
            dout.flush();
            obj.flush();
        }
        } catch (Exception oe) {
            System.out.println(oe);

        }
    }

我知道这不是你问题的确切答案,但它会在某种程度上帮助你

我已经在我的应用程序中用一个
DataOutputStream
对象初始化了
ObjectOutputStream
。你能提供更多的代码以便我们能进一步帮助你吗?嗯,我尝试了一些有效的方法。例如,在一个没有线程类的简单服务器客户端上,我尝试了以下方法:客户端:arraylistobj;obj=(ArrayList)ois.readObject();系统输出打印项次(obj);服务器端:ArrayList list=new ArrayList();oos.writeObject(列表);oos.flush();这很好用!但是,在我发布的代码中,我的原始版本不起作用。我真的不明白:(@YnsHnrksn)你只提供了代码的一小部分,所以我们不能对此发表太多评论。如果你能提供更多的代码,帮助会以更好的方式提供。如果他们有帮助,别忘了投票/接受答案。好吧,我刚刚找到了,很抱歉,这是我使用的流中的一个拼写错误,它吞噬了我2小时的生命。
public void run() {
        try {
            din = new DataInputStream(socket.getInputStream());
            names.add(din.readUTF());   // store the user name in arraylist
            Iterator iter = list.iterator();
        Socket socket;

        while (iter.hasNext()) {
            socket =  (Socket) iter.next(); // creating ArrayList to be written on the stream
            dout = new DataOutputStream(socket.getOutputStream());
            ObjectOutputStream obj = new ObjectOutputStream(dout);
            obj.writeObject(names); //write the list of users in stream of all clients
            dout.flush();
            obj.flush();
        }
        } catch (Exception oe) {
            System.out.println(oe);

        }
    }