当我仅发送文件名时,我试图在通过UTF将文件发送到Socket服务器之前发送一些信息:
File fil=new File(filepath);
dos.writeUTF (fil.getName());
它工作正常,但是当我向其中添加一些自定义字符串时:
dos.writeUTF((("@REQUEST@ROOM:"+roomName+"@FILENAME:"+fil.getName())));
我得到这个错误:
UTFDataFormatException: malformed input UTF Format
你能帮我吗?
最佳答案
编写时不会出现该异常。您在阅读时会得到它:通常是在调用writeUTF()时,如果writeUTF()没有产生输入中的下一件事情。换句话说,应用程序协议错误。在这种情况下,它不是由您发布的内容生成的,而是由您尚未发布的内容生成的。
我不明白为什么您不将扩展的数据写在单独的写入中,而不是在单独的读取中读取,而不是让自己麻烦级联然后再将其拆分。
我也不知道所有多余的括号都应该用作什么。不要编写冗余语法。