亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

文件傳輸基礎——Java IO流

難度入門
時長 2小時 0分
學習人數
綜合評分9.67
669人評價 查看評價
9.9 內容實用
9.6 簡潔易懂
9.5 邏輯清晰

已采納回答 / 深天
Stirng file =“demo/obj.dat" 這里僅僅是創建了一個字符串,并沒有當做文件用。還有File file="demo/obj.dat";這種創建文件對象的方法是完全錯誤的,正確寫法是這樣的:File file=new File("demo/obj.dat");回到剛才"為什么后來可以當做一個文件用":同上一句話可以改寫成File file01 =new File(file);? //這里的的file引用上面的字符串即我們做的只是對字符串的引用,然后創建了一個文件對象,并沒有說我們把它當...

已采納回答 / huangsai
這個方法的作用是把緩沖區的數據輸出。一般在讀寫流的時候,數據是先被讀到了內存中,再把數據寫到文件中,當數據讀完的時候不代表數據已經寫完了,因為還有一部分有可能會留在內存這個緩沖區中。這時候如果調用了close()方法關閉了讀寫流,那么這部分數據就會丟失,所以應該在關閉讀寫流之前先flush()。

已采納回答 / niupizhi203522025
實際上并非是每次都產生異常,而是由于字符編碼格式、文件是否存在等經常會發生異常,所以涉及到IO流或文件操作時,都要防止出現這樣的異常,所以都要進行try/catch或拋除

已采納回答 / 慕函數7182242
bytes用來記錄讀入了多少個字節(in.read()的返回類型就是int,值為讀的字節個數)in.read(buf,0,buf.length)用來讀入,一次最多可以讀buf.length個字節,但是并不是每次都讀入了這么多個字節,(可能讀的文件沒這么長),所以是用bytes來控制循環結束的條件

已采納回答 / 遠方的云o
這兩個的差別,實際上是read()方法兩種重載方式的差別。in.read()表示單字節讀取,相當于一滴一滴水(字節)地去灑in.read(byte[] buf ,int start ,int size )表示字節先讀取到buf緩沖區,start表示緩沖區的起始位置,size表示存入緩沖區的大小。這種方式相當于先把一滴一滴水(字節)放到一個桶(buf)里,當然這個桶肯定有大?。╯ize),當桶里的水達到一定程度(緩沖區的極限)時,再將整個桶里的水灑出去。授人以魚不如授人以漁詳細課程可以去看看 慕課網Java...

已采納回答 / 慕粉4021153
raf.seek(11); String str=new String(gbk); System.out.println(str);

已采納回答 / Jenichan
這么跟你說吧,GBK的編碼中文和符號是雙字節,字符和整型是單字節。utf-8的中文和符號是三字節,字符和整型是單字節。所以整體來說是不兼容的,但如果你的文本存的都是字符和數值,這樣子是不會出現亂碼的。

已采納回答 / QuaciXie
<...code...>read函數返回的是緩沖數組中實際上讀入的字節數,無論是read(byte[] b) 還是 read(byte[] b,int off,int length)。對于read(byte[] b),它默認執行read(byte[] b,0,b.length)。所以應該可以用read(byte[] b)代替的 。解釋如下:<...圖片...>如果說在讀到最后一組的時候,緩沖數組沒有滿,len值很有用。

已采納回答 / Destiny命運
因為他用的是靜態方法,可以通過類名加方法名直接調用這個靜態方法

已采納回答 / XhstormR
因為 你是 Bar2 bar2 = new Bar2(); ? bar2 = (Bar2)ois.readObject();但是老師寫的是 ? Bar2 bar2 = (Bar2)ois.readObject(); ?這里要注意的是 老師并沒有去new一個Bar2對象而你卻是先new出來的 肯定會調用父類的構造函數。

已采納回答 / 醉朦朧轉身一瞬盡成空
這只是聲明了一個對象,還沒有寫到系統中。后邊加一句file2.createNewFile()就ok了

已采納回答 / 六月熊
UTF-8中,前面兩個字符表示數據占用的字節數。eg: ?dos.writeUTF("中國中國"),運行結果前面兩位就會為00 0c。即"中國中國"占用12個字節。還望采納!

已采納回答 / share眼睛
應該是看還有沒有值(是否為空),為空返回值為-1。

已采納回答 / 側耳聽
while ((b=fin.read())!=-1)判斷的是fin.read()是否讀到最后,而且每次判斷都會重新給b賦值,這里主要是read()會一個一個往下讀取。int b =fin.read();while(b!=-1)這里只給int b賦值一次,這里只判斷b里面的值,如果b不等于-1不就一直打印一個嘛。

已采納回答 / nlite
在eclipse中,選中某個類,按下F1鍵,可以查看到幫助
課程須知
親,為了更好的學習本門課程,需要您對二進制的知識有所了解,還要熟悉Java的基本語法和面向對象的知識。
老師告訴你能學到什么?
1、了解文件編碼。 2、能夠對文件和目錄進行管理操作。 3、能夠應用字節流和字符流對文件進行讀寫操作。 4、能夠對對象進行序列化和反序列化。

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?

舉報

0/150
提交
取消