java客户端服务器有时抛出java.io.UTFDataFormatException while(!socket.isClosed()){ //睡眠(100); clientData=新数据输入流(in); 要接收的文件=clientData.readInt(); System.out.println(“已发送的文件:+待接收的文件”); fileName=新字符串[要接收的文件]; fileSize=newint[要接收的文件]; for(int i=0;i
我正在将文件从服务器传输到客户端。在上面的代码中,我并不总是得到UTFException,只是5次尝试中就有一次。有人能帮我解决问题的原因吗?以下是我的错误输出:java客户端服务器有时抛出java.io.UTFDataFormatException while(!socket.isClosed()){ //睡眠(100); clientData=新数据输入流(in); 要接收的文件=clientData.readInt(); System.out.println(“已发送的文件:+待接收的文件”); fileName=新字符串[要接收的文件]; fileSize=newint[要接收的文件]; for(int i=0;i,java,sockets,Java,Sockets,我正在将文件从服务器传输到客户端。在上面的代码中,我并不总是得到UTFException,只是5次尝试中就有一次。有人能帮我解决问题的原因吗?以下是我的错误输出: 您是因为某个特定文件出错吗?检查此项:您是因为某个特定文件出错吗?检查此项: while (!socket.isClosed()) { // Thread.sleep(100); clientData = new DataInputStream(in); files_to_be_reci
您是因为某个特定文件出错吗?检查此项:您是因为某个特定文件出错吗?检查此项:
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");
}
}