已采納回答 / FarFromAnyRoad
為什么亂碼肯定是亂碼啊,? 你使用了DataOutputStream,把int long String 都存了進去。你打開這個文件,使用系統的notepad程序,notepad程序不知道你這個什么編碼,用了ansi,吧intlong什么都放在一起當GBK處理了。怎么做不亂碼不要用記事本打開DataOutputStream創建的東西,看不到亂碼,眼不見心不煩。你自己知道是什么,用DataInputStream或者InputStream能取出來用就行了。
2017-07-13
已采納回答 / 下線123
記事本里采用的是默認編碼是ANSI<...圖片...>,但是你項目中有很多編碼方式,java默認的是utf-16be,你寫漢字時使用的是writeUTF()這使用的是utf-8編碼,你代碼中也有注釋的,所以編碼方式不統一,自然會出現亂碼
2017-07-13
已采納回答 / qq_一人的征程_0
看API文檔的解釋,the total number of bytes read into the buffer, or -1 if there is
no more data because the end of the file has been reached.讀到數據字節個數,如果沒有讀到數據時,返回-1
2017-07-11
最贊回答 / qq_一雨成秋_0
明白了。亂碼才是正常的,因為序列化和反序列話是基于二進制流的,序列話便是把Student對象的信息以二進制存儲在文件obj.bat中,用文本編輯器打開自然是亂碼。只有通過反序列話才能將存儲的二進制讀取出來,然后顯示在控制臺上。
2017-07-10
最新回答 / 烈焰狂歌
我也是遇到了這個問題,我知道問題所在,但是現在還沒有找到解決的方法,這個問題和前面有一節的是一樣的,寫入數字會有錯誤,會亂碼,通過我的檢測,這個數字寫入文件會變成ASCII存儲,你可以把數據改一下,對照ASCII碼表,就會發現輸入的數字是一一對應的。然而我還沒有解決的辦法。。。。
2017-07-08