import java.io.IOException;
import java.io.OutputStream; import java.io.FileOutputStream; class FileOutputStreamTest { public static void main(String[]args) { try { String str = "好好學(xué)習(xí)java"; byte[] words = str.getBytes(); OutputStream fos = new FileOutputStream("Test.txt"); fos.write(words,4,4); System.out.println("Test文件已更新!"); fos.close(); } catch (IOException obj) { System.out.println("創(chuàng)建文件時(shí)出錯(cuò)"); } } } 執(zhí)行fos.write(words,4,4);方法之后Test.txt文件里面的內(nèi)容是什么?你一定會(huì)說(shuō)是“學(xué)習(xí)”吧,那就錯(cuò)了,事實(shí)上里面是兩個(gè)【黑色的方塊】,而且只有這兩個(gè)字顯示不出來(lái),如果你把“學(xué)習(xí)”換成別的漢字就沒有問題,神奇吧,懂JAVA的朋友可以試一下。
這讓我想起了曾經(jīng)的[聯(lián)通]事件:
如果你的電腦操作系統(tǒng)是WIN2000或WINXP的話,那么:
1、在桌面上點(diǎn)右鍵,選擇新建 ― 文本文檔; 2、打開“新建 文本文檔”,寫入“聯(lián)通”兩字后保存退出; 3、重新打開“新建 文本文檔”,看到什么了? 4、是不是剛剛錄入的“聯(lián)通”兩字不見了,取而代之是個(gè)黑塊。 ====================================================================== 這是什么原因? 我在網(wǎng)上查找了相關(guān)的資料,據(jù)說(shuō)是微軟操作系統(tǒng)的BUG.
記事本都會(huì)用自動(dòng)用UTF-8編碼保存(而非ANSI)。“聯(lián)”的UTF-8編碼是54 80。記事本在保存文件時(shí)雖然添加了FF FE的文件頭,但是沒有把“聯(lián)”保存為54 80而是用了6A 00。
這是詳細(xì)的解釋:
|
|
來(lái)自: 鳳舞天煌 > 《JAVA技術(shù)》