2014-07-21 30 views
0

我試圖把一些信息通過UTF發送文件到我的套接字服務器之前,我僅發送一個文件名:UTFDataFormatException:格式不正確的輸入UTF格式

File fil=new File(filepath); 
    dos.writeUTF (fil.getName()); 

它工作正常,但是當我添加一些自定義字符串到它:

dos.writeUTF((("@[email protected]:"+roomName+"@FILENAME:"+fil.getName()))); 

我得到這個錯誤:

UTFDataFormatException: malformed input UTF Format 

你能幫助我在這裏請?

+0

什麼是堆棧跟蹤? – SLaks

+0

UTFDataFormatException:格式錯誤的輸入UTF格式這是登錄服務器夥計 – dasdas

+0

什麼是異常堆棧跟蹤? – SLaks

回答

0

寫作時你不會得到這個異常。讀取時會得到它:通常在調用readUTF()時,如果輸入中的下一個內容不是由writeUTF()生成的。換句話說,應用程序協議錯誤。在這種情況下,它不是由你發佈的內容產生的,而是由你未發佈的內容產生的。

我不明白爲什麼你不會在單獨的寫入中寫入擴展的數據片段,而是在單獨的讀取中讀取它,而不是給自己串接並再次分裂它的麻煩。

我也不知道所有額外的括號應該是什麼。不要寫冗餘語法。

+0

我找到了答案,謝謝任何方式,但順便說一句,我附加他們togeather的原因是較少(甚至有點)溝通,所以更高的速度 – dasdas

+0

速度差異將不會可衡量的,但是你所做的方式的額外複雜性和成本以及風險肯定是。 – EJP

+0

有什麼風險?你的意思是NPE Exception Posibility? – dasdas