...">
瀏覽量:149次
dataoutputstream亂碼是什么原因呢?不知道的小伙伴來看看陽泰小編今天的分享吧!
dataoutputstream亂碼的原因:
Java運(yùn)行環(huán)境(JRE)分英文版和國際版,只有國際版才支持非英文字符,如果電腦上裝的是英文版,Java開發(fā)工具包(JDK)就支持多國字符,但是如果沒有按裝JDK,直接用壓縮包就會(huì)出現(xiàn)亂碼。
注意:“ Java 源代碼-> Java 字節(jié)碼”,標(biāo)準(zhǔn)的 Java 編譯器 javac 使用的字符集是系統(tǒng)默認(rèn)的字符集,比如在中文 Windows 操作系統(tǒng)上就是 GBK ,而在 Linux 操作系統(tǒng)上就是ISO-8859-1,所以開發(fā)人員在 Linux 操作系統(tǒng)上編譯的類中源文件中的中文字符都出了問題,解決的辦法就是在編譯的時(shí)候添加 encoding 參數(shù),這樣才能夠與平臺(tái)無關(guān),用法是 javac –encoding GBK。
dataoutputstream亂碼的解決辦法:
使用FileOutputStream序列化可以直接向文件寫入文本內(nèi)容,代碼如下:
FileOutputStream outStream = new FileOutputStream(file);
outStream.write(str.getBytes());
outStream.close();
但這里的字符串如果包含中文,就會(huì)出現(xiàn)亂碼,這是因?yàn)镕ileOutputStream是字節(jié)流,將文本按字節(jié)寫入文件,而一個(gè)漢字是兩個(gè)字節(jié),無法一次寫入,就會(huì)出現(xiàn)亂碼,解決方法是使用OutputStreamWriter將字節(jié)流轉(zhuǎn)換為字符流寫入,同時(shí)指定utf-8編碼。代碼如下:
OutputStreamWriter oStreamWriter = new OutputStreamWriter(new FileOutputStream(file), "utf-8");
oStreamWriter.append(str);
oStreamWriter.close();
拓展資料:
Java
Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強(qiáng)大和簡單易用兩個(gè)特征。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實(shí)現(xiàn)了面向?qū)ο罄碚?,允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。
Java具有簡單性、面向?qū)ο?、分布式、健壯性、安全性、平臺(tái)獨(dú)立與可移植性、多線程、動(dòng)態(tài)性等特點(diǎn)。Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等。
[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡(luò)媒體稿件是為了傳播更多的信息,此類稿件不代表本網(wǎng)觀點(diǎn),本網(wǎng)不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請(qǐng)您的相關(guān)內(nèi)容發(fā)至此郵箱【779898168@qq.com】,我們?cè)诖_認(rèn)后,會(huì)立即刪除,保證您的版權(quán)。
官網(wǎng)優(yōu)化
整站優(yōu)化
渠道代理
400-655-5776