最新回答 / 幕布斯7473508
他這個(gè)只是打印文件,而不是目錄。
if(file.isDirectory())//這個(gè)判斷的是是不是目錄,如果是就遞歸。把它下面的文件路徑打印出來(lái)。 你如果要打印目錄其實(shí)可以在遞歸前加上這段代碼:System.out.print(?file?); 他就會(huì)把目錄也打印下來(lái)。?
2019-11-04
最新回答 / jia_蛙
你不是已經(jīng)得到了結(jié)果嗎? 使用Integer.toHexString就已經(jīng)把字節(jié)轉(zhuǎn)換成了以16進(jìn)制顯示的方式? 這里又使用?&0xff把前面24個(gè)沒(méi)用的0去掉,這就變成你控制臺(tái)輸出的那些了
2019-10-31
最贊回答 / iodysseus
你的補(bǔ)0判斷沒(méi)有問(wèn)題,只不過(guò)是因?yàn)槟愕淖x取文件中,包含了中文,而中文在字節(jié)數(shù)組中保存的數(shù)值是負(fù)值,?if(buf[i]<=0xf){? ? System.out.print("0");? ? }所以但凡是中文 都會(huì)經(jīng)由此補(bǔ)上0,而且看你輸出的全是3位補(bǔ)0,應(yīng)該是全文字內(nèi)容,你再加入一點(diǎn)字母數(shù)字,就會(huì)發(fā)現(xiàn)有3位和兩位并存的現(xiàn)象
2019-10-30
最新回答 / SloMo8
00? 06 --->? 這兩字節(jié)表示的是字符串s占6個(gè)字節(jié)e4? b8? ad? e5? 9b? bd? --->"中國(guó)"的utf-8編碼4e? 2d? 56? fd? --->"中國(guó)"的utf-16be編碼
2019-10-21
我感覺(jué)java面向?qū)ο笞裱氖呛暧^(guān)因果律
序列化的時(shí)候調(diào)用所有父類(lèi)的構(gòu)造方法其實(shí)是因?yàn)锽ar2 bar = new Bar2()這個(gè)實(shí)例化對(duì)象的操作造成的,可以在后面System.out.println("構(gòu)造方法之后");可以看出來(lái),因?yàn)橐獦?gòu)造子類(lèi)都得先構(gòu)造父類(lèi)
反序列化如果父親實(shí)現(xiàn)了序列化接口,對(duì)兒子進(jìn)行序列化時(shí)其序列化代碼中就蘊(yùn)含了父親的信息,也就知道了其父親的存在,但不知道他爺爺以及一直到老祖宗Object是否存在,因?yàn)樗麄儧](méi)有實(shí)現(xiàn)序列化接口,所以得依次創(chuàng)建這些祖先類(lèi)的實(shí)例,也就是調(diào)用構(gòu)造方法。但由于他父親已經(jīng)存在于序列化信息中。所以就不用再構(gòu)造一遍了。
為了保證反序列不是無(wú)中生有的
序列化的時(shí)候調(diào)用所有父類(lèi)的構(gòu)造方法其實(shí)是因?yàn)锽ar2 bar = new Bar2()這個(gè)實(shí)例化對(duì)象的操作造成的,可以在后面System.out.println("構(gòu)造方法之后");可以看出來(lái),因?yàn)橐獦?gòu)造子類(lèi)都得先構(gòu)造父類(lèi)
反序列化如果父親實(shí)現(xiàn)了序列化接口,對(duì)兒子進(jìn)行序列化時(shí)其序列化代碼中就蘊(yùn)含了父親的信息,也就知道了其父親的存在,但不知道他爺爺以及一直到老祖宗Object是否存在,因?yàn)樗麄儧](méi)有實(shí)現(xiàn)序列化接口,所以得依次創(chuàng)建這些祖先類(lèi)的實(shí)例,也就是調(diào)用構(gòu)造方法。但由于他父親已經(jīng)存在于序列化信息中。所以就不用再構(gòu)造一遍了。
為了保證反序列不是無(wú)中生有的
2019-10-15
讀文件是硬盤(pán)往內(nèi)存里不斷input,CPU在內(nèi)存里不斷read
寫(xiě)文件是CPU不斷往內(nèi)存里write,內(nèi)存不斷往硬盤(pán)里存儲(chǔ)output
所以把內(nèi)存看成主體,輸入流是本來(lái)就存在于硬盤(pán)的數(shù)據(jù)不斷輸入到內(nèi)存,我們r(jià)ead內(nèi)存就能看到數(shù)據(jù)了,是一種輸入過(guò)程
輸出流得先write進(jìn)內(nèi)存,內(nèi)存再輸出到硬盤(pán)進(jìn)行存儲(chǔ),是一種輸出過(guò)程也就是output
close()應(yīng)該就是關(guān)閉內(nèi)存
寫(xiě)文件是CPU不斷往內(nèi)存里write,內(nèi)存不斷往硬盤(pán)里存儲(chǔ)output
所以把內(nèi)存看成主體,輸入流是本來(lái)就存在于硬盤(pán)的數(shù)據(jù)不斷輸入到內(nèi)存,我們r(jià)ead內(nèi)存就能看到數(shù)據(jù)了,是一種輸入過(guò)程
輸出流得先write進(jìn)內(nèi)存,內(nèi)存再輸出到硬盤(pán)進(jìn)行存儲(chǔ),是一種輸出過(guò)程也就是output
close()應(yīng)該就是關(guān)閉內(nèi)存
2019-10-13
字符流的底層也是字節(jié)流
所以在創(chuàng)建字符流對(duì)象時(shí),也需要把字節(jié)流對(duì)象傳入
如:InputStreamReader in=new InputSteamReader(new FileInputStream());
所以在創(chuàng)建字符流對(duì)象時(shí),也需要把字節(jié)流對(duì)象傳入
如:InputStreamReader in=new InputSteamReader(new FileInputStream());
2019-09-24
for循環(huán)適合已知次數(shù)的情況,即for只會(huì)讀到字節(jié)數(shù)組滿(mǎn)了就會(huì)停止。
while是一直讀到文件結(jié)尾才會(huì)停止,如果字節(jié)數(shù)組滿(mǎn)了,它會(huì)從頭覆蓋此數(shù)組進(jìn)行讀取。
while是一直讀到文件結(jié)尾才會(huì)停止,如果字節(jié)數(shù)組滿(mǎn)了,它會(huì)從頭覆蓋此數(shù)組進(jìn)行讀取。
2019-09-24