已采納回答 / 渴望飛翔的豬
你實現了Serializable接口,但沒有為其指定ID?在代碼里加上這段定義看看:private static final long serialVersionUID = -3286564461647015367L;
2016-09-05
已采納回答 / IJN
本來Java的IO這塊就比其它語言復雜,很多概念不是一下子就能懂,如果沒理解這些概念那么IO這塊就基本是迷迷糊糊。這個課程條理還是挺清晰的,要理解Java的IO確實應該先理解編碼,編碼的大概就是用字節來表示字符。計算機存儲的是字節,一個字節一個字節存起來的,我們看到的是字符,許多字符在一起就是一段文字。字節怎么表示字符就是編碼問題了。Java的InputStream之類的是處理字節流的,InputStreamReader這些是處理字符流的,我們知道了字節需要轉換成字符才能表示成我們所理解的文字,那么Inp...
2016-09-01
已采納回答 / 羅漢爺
因為累IOUtil中定義的是靜態方法:public static void printHex。對于一般的非static成員變量或方法,需要有一個對象的實例才能調用,所以要先生成對象的實例,他們才會實際的分配內存空間。而對于static的對象或方法,在程序載入時便已經分配了內存空間,他只和特定的類想關聯,無需實例化。
2016-08-27
已采納回答 / 慕祈
io流中拋出異常是一種保護機制,保證程序不會異常中斷,降低損失。因為可能就是文件在傳輸過程中遇到異常情況(如:機器壞了,主文件沒了),無法成整個流程,這個時候就會出現異常。
2016-08-27
已采納回答 / qq_弒神S無塵
分析代碼:已有file類型dir對象,調用對象的ilstfiles方法,返回一個file數組,里面是dir里面的東西,并且已經被封裝為file對象
2016-08-25
已采納回答 / Airly
先說說你的這個問題,?為什么不是小于bytes的長度?int bytes=in.read(buf,0,buf.length);?這里bytes返回的是int類型的整數而不是數組!沒有.length這一說你其實想說的是為什么不是小于buf[i]這個數組的長度吧...是因為老師設置了byte[] buf =new byte[20*1024],有可能讀取出來的字節并沒有把這個數組裝滿,所以這里的i只能小于讀出來的有效字節長度,而這個讀出來的有效字節長度就是int bytes=in.read(buf,0,buf....
2016-08-25
已采納回答 / Smile丶微冷
文件的本質呢就是一串長長的編碼,就像‘011010.....’這樣子的東西,當你讀取的時候電腦會對內容進行識別和轉換。而隨機讀取的用處呢,比如說你在看電影的時候想要快進,或者直接去看精彩部分,那么就要用到隨機讀取了。正常從頭播放呢,就相當于按順序讀取,文件指針從頭一個一個往過走,指針指到那個數據了,那個數據就讀出來。而快進和跳轉到精彩部分的時候呢,文件指針就會按照人為的設置,跳轉到你所設置的文件位置,這就是隨機讀取的好處。
2016-08-24