Я читаю файл с стеклянного устройства Google на ПК через java-сокет. Остальная часть моего кода игнорируется из-за исключения eof, созданного оператором catch. Идеи, как я могу это исправить?ObjectInputStream Исключение конца файла игнорирует утверждения печати
Код: чтобы получить изображение (и поместить его в простой jfame)
ObjectInputStream inFromServer = new ObjectInputStream(
clientimage.getInputStream());
System.out.println("infrom: " + inFromServer.readObject() + "\n");
System.out.println("infrom bytes: " + inFromServer.readByte() + "\n");
System.out.println("infrom something: " + inFromServer.readUTF());
File temp = (File) inFromServer.readObject();
BufferedImage image = ImageIO.read(temp);
System.out.println("image height: " + image.getHeight());
JFrame frame = new JFrame();
JLabel label = new JLabel(new ImageIcon(image));
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(label);
f.pack();
f.setLocation(200,200);
f.setVisible(true);
Клиент съемки и отправки файла на ПК:
Socket pic_socket = new Socket(ip, 50505);
ObjectOutputStream imageToServer = new ObjectOutputStream(pic_socket.getOutputStream());
imageToServer.writeObject(pictureToSend.getAbsoluteFile());
imageToServer.close();
Мой выход есть :
начиная подключение ..
изображение SRV соединено с: /192.168.1.104
заездаС: \ хранение \ эмулировать \ 0 \ DCIM \ Camera \ 20151209_110536_982.jpg
Какая линия выбрасывает исключение? И что * записал * данные? (Если это не 'ObjectOutputStream', вы не должны использовать' ObjectInputStream' ...) –
Я считаю, что строка, которая бросает исключение, это 'ObjectInputStream inFromServer = new ObjectInputStream (clientimage.getInputStream());' Я думаю, что это просто не «останавливается», когда это делается. Я не совсем уверен. Отправитель берет снимок и сохраняет файл в ObjectOutputStream следующим образом: 'Socket pic_socket = new Socket (ip, 50505); ObjectOutputStream imageToServer = new ObjectOutputStream (pic_socket.getOutputStream()); imageToServer.writeObject (pictureToSend.getAbsoluteFile()); imageToServer.close(); ' – user2852171
Ну, вы должны быть в состоянии сказать, из трассировки стека и отладки. Но учитывая, что вы вызываете только 'writeObejct()', и только один раз, что вы ожидаете от 'readByte' и' readUTF'? Я ожидал бы, что проблема будет 'readByte()' вызовом. –