java client-server有时会抛出java.io.UTFDataFormatException

时间:2017-02-06 11:23:15

标签: java sockets

while (!socket.isClosed()) {
        // Thread.sleep(100);
        clientData = new DataInputStream(in);
        files_to_be_recieved = clientData.readInt();
        System.out.println("Files sent:" + files_to_be_recieved);
        fileName = new String[files_to_be_recieved];
        fileSize = new int[files_to_be_recieved];
        for (int i = 0; i < files_to_be_recieved; i++) {
            fileName[i] = clientData.readUTF();// THIS LINE SOMETIMES THROWS
                                                // UTFEXCEPTION
            fileSize[i] = clientData.readInt();
            System.out.println("FileName:" + fileName[i]);
            System.out.println("FileSize:" + fileSize[i]);
        }

        for (int i = 0; i < files_to_be_recieved; i++) {
            File f = new File("C:\\users\\MSP\\desktop\\", fileName[i]);
            out = new FileOutputStream(f);
            int received = 0;
            byte[] bytes = new byte[32384];
            System.out.println("Filename:" + fileName[i] + "\n" + "FileSize:" + fileSize[i]);
            int count;
            while ((count = in.read(bytes)) > 0) {
                // System.out.println("COunt=" + count);
                if (count < 1024) {
                    // System.out.println("COUNT INSIDE IF:" + count);
                    out.write(bytes, 0, count);
                    out.close();
                    break;
                }
                out.write(bytes, 0, count);
            }
            System.out.println("Transfer complete");
        }
    }

我正在将文件从服务器传输到客户端。在上面的代码中,我总是得到UTFException,就像在5次尝试中一次。有人可以帮助我解决导致问题的原因,这是我输出的错误: output

0 个答案:

没有答案