已采納回答 / 下線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
已采納回答 / biubiu3504110
對于中文字符,UTF-8編碼要用三個字節進行編碼,因此,如果你使用記事本錄入“聯通”,然后選擇以UTF-8編碼方式保存的話,文件大小應為9個字節(包含三個字節的開頭數據),而同樣的文件GBK編碼卻是4個字節。最后附上“聯通”的GBK、UTF-8、Unicode編碼值,以及記事本的錯誤思維。 聯通 GBK C1 AA CD A8 ? ?UTF-8 E8 81 94 E9 80 9A ? ? Unicode 54 80 1A 90 聯通 GBK C1 AA CD A8 ? ?UTF-8 C1 AA CD A8...
2017-06-25
已采納回答 / botao555
file的length方法的作用:如果File表示一個具體文件,則length方法返回這個文件的字節大?。蝗绻鸉ile表示一個目錄,則length方法的返回值不確定;如果File表示的目錄或文件不存在,則length方法的返回值為0L。你要是想獲取某個目錄下的子文件,是不能用length方法的,要用listFiles方法,用法如下:File[] files = file.listFiles();listFiles方法返回一個File數組,就是拿到的所有子文件(或目錄)。望采納。
2017-06-24
已采納回答 / 念舊的拾荒者3981222
printHex()是IOUtil類里寫的靜態函數,所以能夠直接通過IOUtil類來調用該函數,他不是FileInputStream的方法,而是IOUtil里的方法
2017-06-12
已采納回答 / qHK丨DC
比如從一個缸往另一個缸中倒水,前者直接到,后者是有緩沖區的,相當于一個桶,然后往桶里加水,然后再往另一個缸中到。 ?字節數組最快(批量),有緩沖區的次之(一杯一杯加到桶里再將桶中的倒入缸中),一個字節一個字節最慢(相當于一杯一杯)。 ?太詳細的有點啰嗦,將就看吧。
2017-06-09
已采納回答 / yeehom
這樣寫是出于兼容性考慮。舊版本的JDK中,ArrayList的實現有所不同,會對length字段進行序列化。而新版的JDK中,對優化了ArrayList的實現,不再序列化length字段。這個時候,如果去掉s.writeInt(size),那么新版本JDK序列化的對象,在舊版本中就無法正確讀取,因為缺少了length字段。因此這種寫法看起來多此一舉,實際上卻保證了兼容性。附上官方解釋:defaultReadObject()?and?defaultWriteObject()?should?be?the?fi...
2017-06-04