課程
/后端開發
/Java
/文件傳輸基礎——Java IO流
這里老師說只能寫進去后八位 這里大寫A是兩位的嗎
2017-10-31
源自:文件傳輸基礎——Java IO流 3-1
正在回答
首先,gbk編碼方式是中文占兩個字節,英文占1個字節。但是,Java是雙字節編碼,采用的是utf-16be編碼方式,而utf-16be編碼是中文和英文都占兩個字節。這里的write()寫A、B、i ?都是采用的Java默認的編碼,只是后面的漢字“中”才采用的gbk編碼,所以老師getBytes("gbk")傳入了編碼方式。
因為A是char 型,16位,本身是占兩個字節。我猜你是上面這個知識點沒弄明白。
這里老師就是想說明write()方法一次只能寫一個字節,所以這里A只寫了后8位,所以A是沒有讀寫完的。但是后面能正常被read()讀出來,是因為A本身后8位字節就表示它了(01000001),前8位都是0。
藍_zz小姐
這里老師就是想說明write()方法一次只能寫一個字節,所以這里A只讀了后8位,所以A是沒有讀完的。但是后面能正常被read()出來,是因為A本身后8位字節就表示它了(01000001),前8位都是0。
qq_慕后端9416733
gbk編碼下英語字母是一個字節,,這里的write()方法是只能寫一個字節,所以如果是A的話就可以只寫一次,就能寫完,但如果是漢字的話,占兩個字節,因為一次只能寫一個字節,所以要寫兩次。。老師的意思只是說明write()方法一次只能寫一個字節,不是說A占兩個字節。
慕移動7208282 提問者
密蒙 回復 慕移動7208282 提問者
舉報
為您介紹IO流的使用,以及對象的序列化和反序列化的內容
1 回答在utf-8中 , e6 85 95 為什么是三個字節,不應該是六個字節嗎,一個數字或一個字母是一個字節,在這里很困惑
1 回答方法write不是只能寫入int類型或者字節嗎,為什么單個字母可以?
1 回答寫了2個int共8字節,一個long8字節,一個double8字節,2個“中國”(utf-8共6字節,utf-16be共4字節)為什么會打印出來36個字節
3 回答字節流沒有編碼的問題嗎
1 回答在中文系統下新建一個“聯通”文件,含“聯通”兩字,另存為utf-8編碼,保存。為什么查看大小是9字節?而不是6字節?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-12-05
首先,gbk編碼方式是中文占兩個字節,英文占1個字節。但是,Java是雙字節編碼,采用的是utf-16be編碼方式,而utf-16be編碼是中文和英文都占兩個字節。這里的write()寫A、B、i ?都是采用的Java默認的編碼,只是后面的漢字“中”才采用的gbk編碼,所以老師getBytes("gbk")傳入了編碼方式。
因為A是char 型,16位,本身是占兩個字節。我猜你是上面這個知識點沒弄明白。
這里老師就是想說明write()方法一次只能寫一個字節,所以這里A只寫了后8位,所以A是沒有讀寫完的。但是后面能正常被read()讀出來,是因為A本身后8位字節就表示它了(01000001),前8位都是0。
2017-12-05
首先,gbk編碼方式是中文占兩個字節,英文占1個字節。但是,Java是雙字節編碼,采用的是utf-16be編碼方式,而utf-16be編碼是中文和英文都占兩個字節。這里的write()寫A、B、i ?都是采用的Java默認的編碼,只是后面的漢字“中”才采用的gbk編碼,所以老師getBytes("gbk")傳入了編碼方式。
因為A是char 型,16位,本身是占兩個字節。我猜你是上面這個知識點沒弄明白。
這里老師就是想說明write()方法一次只能寫一個字節,所以這里A只讀了后8位,所以A是沒有讀完的。但是后面能正常被read()出來,是因為A本身后8位字節就表示它了(01000001),前8位都是0。
2017-10-31
gbk編碼下英語字母是一個字節,,這里的write()方法是只能寫一個字節,所以如果是A的話就可以只寫一次,就能寫完,但如果是漢字的話,占兩個字節,因為一次只能寫一個字節,所以要寫兩次。。老師的意思只是說明write()方法一次只能寫一個字節,不是說A占兩個字節。