Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ObjectInputStream没有´;无法初始化_Java_Stream_Serversocket_Objectinputstream - Fatal编程技术网

Java ObjectInputStream没有´;无法初始化

Java ObjectInputStream没有´;无法初始化,java,stream,serversocket,objectinputstream,Java,Stream,Serversocket,Objectinputstream,我对ObjectInputStream有问题。我想通过这个发送对象,但是程序在我想初始化ObjectInputStream的地方停止。我已经搜索了Answeed,发现ObjectOutputstream需要先打开,然后才能初始化ObjectInputStream。但这是有理由的 我的客户机类的一段代码: socket = new Socket(InetAddress.getByName(server).getHostAddress(), 13340); messages = ne

我对ObjectInputStream有问题。我想通过这个发送对象,但是程序在我想初始化ObjectInputStream的地方停止。我已经搜索了Answeed,发现ObjectOutputstream需要先打开,然后才能初始化ObjectInputStream。但这是有理由的

我的客户机类的一段代码:

socket = new Socket(InetAddress.getByName(server).getHostAddress(), 13340);
        messages = new Scanner(socket.getInputStream());
        p = new PrintStream(socket.getOutputStream());
        ObjectOutputStream o = new ObjectOutputStream(socket.getOutputStream());

        p.println("addServerContent");

        o.flush();
        System.out.println("1");
        o.writeObject(String.valueOf(index));
        o.writeObject(s);
这是服务器的一部分:

}else if(what.equals("addServerContent")){
        ObjectInputStream i = null;
        try{
            i = new ObjectInputStream(s.getInputStream());
        }catch(IOException e){}

        while(GxMS2.ListUsed){
            try {
                Thread.sleep(10);
            } catch (InterruptedException ex) {}
        }

        try{

            System.out.println("1");
            int index = Integer.parseInt((String)i.readObject());
            ServerContent sc = (ServerContent)i.readObject();
在服务器上,它甚至没有达到“1”标记

为什么它不起作用


谢谢

您无法将字符流与对象流组合,因此您可以使用
PrintWriter
ObjectOutputStream
包装
OutputStream
,但不能同时使用两者。

当(GxMS2.ListUsed)或其他地方时,它或者挂在这里,我在while前面添加了一个标记,它没有被触发“我发现ObjectOutputstream需要打开才能初始化ObjectInputStream”绝对不是真的答案2,这是我发现的,看起来很合理为什么不呢?他们在互相阻拦吗?