課程
/后端開發(fā)
/Java
/文件傳輸基礎(chǔ)——Java IO流
這里老師說只能寫進(jìn)去后八位 這里大寫A是兩位的嗎
2017-10-31
源自:文件傳輸基礎(chǔ)——Java IO流 3-1
正在回答
首先,gbk編碼方式是中文占兩個(gè)字節(jié),英文占1個(gè)字節(jié)。但是,Java是雙字節(jié)編碼,采用的是utf-16be編碼方式,而utf-16be編碼是中文和英文都占兩個(gè)字節(jié)。這里的write()寫A、B、i ?都是采用的Java默認(rèn)的編碼,只是后面的漢字“中”才采用的gbk編碼,所以老師getBytes("gbk")傳入了編碼方式。
因?yàn)锳是char 型,16位,本身是占兩個(gè)字節(jié)。我猜你是上面這個(gè)知識(shí)點(diǎn)沒弄明白。
這里老師就是想說明write()方法一次只能寫一個(gè)字節(jié),所以這里A只寫了后8位,所以A是沒有讀寫完的。但是后面能正常被read()讀出來,是因?yàn)锳本身后8位字節(jié)就表示它了(01000001),前8位都是0。
藍(lán)_zz小姐
這里老師就是想說明write()方法一次只能寫一個(gè)字節(jié),所以這里A只讀了后8位,所以A是沒有讀完的。但是后面能正常被read()出來,是因?yàn)锳本身后8位字節(jié)就表示它了(01000001),前8位都是0。
qq_慕后端9416733
gbk編碼下英語字母是一個(gè)字節(jié),,這里的write()方法是只能寫一個(gè)字節(jié),所以如果是A的話就可以只寫一次,就能寫完,但如果是漢字的話,占兩個(gè)字節(jié),因?yàn)橐淮沃荒軐懸粋€(gè)字節(jié),所以要寫兩次。。老師的意思只是說明write()方法一次只能寫一個(gè)字節(jié),不是說A占兩個(gè)字節(jié)。
慕移動(dòng)7208282 提問者
密蒙 回復(fù) 慕移動(dòng)7208282 提問者
舉報(bào)
為您介紹IO流的使用,以及對(duì)象的序列化和反序列化的內(nèi)容
1 回答在utf-8中 , e6 85 95 為什么是三個(gè)字節(jié),不應(yīng)該是六個(gè)字節(jié)嗎,一個(gè)數(shù)字或一個(gè)字母是一個(gè)字節(jié),在這里很困惑
1 回答方法write不是只能寫入int類型或者字節(jié)嗎,為什么單個(gè)字母可以?
1 回答寫了2個(gè)int共8字節(jié),一個(gè)long8字節(jié),一個(gè)double8字節(jié),2個(gè)“中國(guó)”(utf-8共6字節(jié),utf-16be共4字節(jié))為什么會(huì)打印出來36個(gè)字節(jié)
3 回答字節(jié)流沒有編碼的問題嗎
3 回答UTF-8編碼中文的字節(jié)數(shù)問題?每個(gè)中文到底是幾個(gè)字節(jié)呢?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2017-12-05
首先,gbk編碼方式是中文占兩個(gè)字節(jié),英文占1個(gè)字節(jié)。但是,Java是雙字節(jié)編碼,采用的是utf-16be編碼方式,而utf-16be編碼是中文和英文都占兩個(gè)字節(jié)。這里的write()寫A、B、i ?都是采用的Java默認(rèn)的編碼,只是后面的漢字“中”才采用的gbk編碼,所以老師getBytes("gbk")傳入了編碼方式。
因?yàn)锳是char 型,16位,本身是占兩個(gè)字節(jié)。我猜你是上面這個(gè)知識(shí)點(diǎn)沒弄明白。
這里老師就是想說明write()方法一次只能寫一個(gè)字節(jié),所以這里A只寫了后8位,所以A是沒有讀寫完的。但是后面能正常被read()讀出來,是因?yàn)锳本身后8位字節(jié)就表示它了(01000001),前8位都是0。
2017-12-05
首先,gbk編碼方式是中文占兩個(gè)字節(jié),英文占1個(gè)字節(jié)。但是,Java是雙字節(jié)編碼,采用的是utf-16be編碼方式,而utf-16be編碼是中文和英文都占兩個(gè)字節(jié)。這里的write()寫A、B、i ?都是采用的Java默認(rèn)的編碼,只是后面的漢字“中”才采用的gbk編碼,所以老師getBytes("gbk")傳入了編碼方式。
因?yàn)锳是char 型,16位,本身是占兩個(gè)字節(jié)。我猜你是上面這個(gè)知識(shí)點(diǎn)沒弄明白。
這里老師就是想說明write()方法一次只能寫一個(gè)字節(jié),所以這里A只讀了后8位,所以A是沒有讀完的。但是后面能正常被read()出來,是因?yàn)锳本身后8位字節(jié)就表示它了(01000001),前8位都是0。
2017-10-31
gbk編碼下英語字母是一個(gè)字節(jié),,這里的write()方法是只能寫一個(gè)字節(jié),所以如果是A的話就可以只寫一次,就能寫完,但如果是漢字的話,占兩個(gè)字節(jié),因?yàn)橐淮沃荒軐懸粋€(gè)字節(jié),所以要寫兩次。。老師的意思只是說明write()方法一次只能寫一個(gè)字節(jié),不是說A占兩個(gè)字節(jié)。