已采納回答 / 下線123
記事本里采用的是默認(rèn)編碼是ANSI<...圖片...>,但是你項(xiàng)目中有很多編碼方式,java默認(rèn)的是utf-16be,你寫漢字時(shí)使用的是writeUTF()這使用的是utf-8編碼,你代碼中也有注釋的,所以編碼方式不統(tǒng)一,自然會(huì)出現(xiàn)亂碼
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.讀到數(shù)據(jù)字節(jié)個(gè)數(shù),如果沒有讀到數(shù)據(jù)時(shí),返回-1
2017-07-11
已采納回答 / biubiu3504110
對(duì)于中文字符,UTF-8編碼要用三個(gè)字節(jié)進(jìn)行編碼,因此,如果你使用記事本錄入“聯(lián)通”,然后選擇以UTF-8編碼方式保存的話,文件大小應(yīng)為9個(gè)字節(jié)(包含三個(gè)字節(jié)的開頭數(shù)據(jù)),而同樣的文件GBK編碼卻是4個(gè)字節(jié)。最后附上“聯(lián)通”的GBK、UTF-8、Unicode編碼值,以及記事本的錯(cuò)誤思維。 聯(lián)通 GBK C1 AA CD A8 ? ?UTF-8 E8 81 94 E9 80 9A ? ? Unicode 54 80 1A 90 聯(lián)通 GBK C1 AA CD A8 ? ?UTF-8 C1 AA CD A8...
2017-06-25
已采納回答 / botao555
file的length方法的作用:如果File表示一個(gè)具體文件,則length方法返回這個(gè)文件的字節(jié)大??;如果File表示一個(gè)目錄,則length方法的返回值不確定;如果File表示的目錄或文件不存在,則length方法的返回值為0L。你要是想獲取某個(gè)目錄下的子文件,是不能用length方法的,要用listFiles方法,用法如下:File[] files = file.listFiles();listFiles方法返回一個(gè)File數(shù)組,就是拿到的所有子文件(或目錄)。望采納。
2017-06-24
已采納回答 / 念舊的拾荒者3981222
printHex()是IOUtil類里寫的靜態(tài)函數(shù),所以能夠直接通過IOUtil類來調(diào)用該函數(shù),他不是FileInputStream的方法,而是IOUtil里的方法
2017-06-12
已采納回答 / qHK丨DC
比如從一個(gè)缸往另一個(gè)缸中倒水,前者直接到,后者是有緩沖區(qū)的,相當(dāng)于一個(gè)桶,然后往桶里加水,然后再往另一個(gè)缸中到。 ?字節(jié)數(shù)組最快(批量),有緩沖區(qū)的次之(一杯一杯加到桶里再將桶中的倒入缸中),一個(gè)字節(jié)一個(gè)字節(jié)最慢(相當(dāng)于一杯一杯)。 ?太詳細(xì)的有點(diǎn)啰嗦,將就看吧。
2017-06-09
已采納回答 / yeehom
這樣寫是出于兼容性考慮。舊版本的JDK中,ArrayList的實(shí)現(xiàn)有所不同,會(huì)對(duì)length字段進(jìn)行序列化。而新版的JDK中,對(duì)優(yōu)化了ArrayList的實(shí)現(xiàn),不再序列化length字段。這個(gè)時(shí)候,如果去掉s.writeInt(size),那么新版本JDK序列化的對(duì)象,在舊版本中就無法正確讀取,因?yàn)槿鄙倭薼ength字段。因此這種寫法看起來多此一舉,實(shí)際上卻保證了兼容性。附上官方解釋:defaultReadObject()?and?defaultWriteObject()?should?be?the?fi...
2017-06-04