海詩網(wǎng) 知識百科 dataoutputstream亂碼(dataoutputstream打開文件亂碼)

dataoutputstream亂碼(dataoutputstream打開文件亂碼)

dataoutputstream亂碼, dataoutputstream出現(xiàn)亂碼的原因是什么?不知道小伙伴們今天來看看邊肖的分享吧!

Causes of garbled data output stream:

Java運(yùn)行時環(huán)境(JRE)分為英文版和國際版。只有國際版支持非英語字符。如果計算機(jī)上安裝了英文版,Java開發(fā)工具包(JDK)支持多語言字符。但是,如果沒有安裝JDK,直接使用壓縮包會出現(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,那么Linux操作系統(tǒng)上開發(fā)者編譯的類的源文件中的漢字就存在問題。

解決方法是在編譯時添加編碼參數(shù),這樣就可以獨(dú)立于平臺。用法是javac編碼GBK。

dataoutputstream打開文件亂碼

dataoutputstream亂碼的解決方案;

使用FileOutputStream序列化,可以將文本內(nèi)容直接寫入文件,代碼如下:

FileOutputStream outStream=new FileOutputStream(file);

outStream.write(str.getBytes());

outStream.close();

但是如果這里的字符串包含中文,就會亂碼。這是因?yàn)镕ileOutputStream是字節(jié)流,文本是按字節(jié)寫入文件的,而一個漢字是兩個字節(jié)。如果不能一次寫完,就會亂碼。

解決方案是使用OutputStreamWriter將字節(jié)流轉(zhuǎn)換為字符流,并指定utf-8編碼。代碼如下:

OutputStreamWriter oStreamWriter=new OutputStreamWriter(new FileOutputStream(file), utf-8);

oStreamWriter.append(str);

oStreamWriter.close();

dataoutputstream打開文件亂碼

擴(kuò)展信息:

Java

Java是一種面向?qū)ο蟮木幊陶Z言,它既吸收了C語言的優(yōu)點(diǎn),又摒棄了C語言中難以理解的多重繼承和指針等概念,所以Java語言有兩個特點(diǎn):功能強(qiáng)大和使用簡單。

Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,完美地實(shí)現(xiàn)了面向?qū)ο罄碚?,讓程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。

Java具有簡單性、面向?qū)ο?、分布式、健壯性、安全性、平臺獨(dú)立性和可移植性、多線程和動態(tài)性等特點(diǎn)。Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序。

dataoutputstream亂碼,以上就是本文為您收集整理的dataoutputstream亂碼最新內(nèi)容,希望能幫到您!更多相關(guān)內(nèi)容歡迎關(guān)注。

本文來自網(wǎng)絡(luò),不代表海詩網(wǎng)立場,轉(zhuǎn)載請注明出處:http://x91880.com/n/168732.html
      

微信設(shè)置鈴聲要錢嗎(怎么改微信來電鈴聲)

發(fā)表回復(fù)
聯(lián)系我們
聯(lián)系我們

在線咨詢: QQ交談

郵箱: 3587015498@qq.com

工作時間:周一至周五,9:00-17:30,節(jié)假日休息

關(guān)注微信
微信掃一掃關(guān)注我們
微信掃一掃關(guān)注我們
關(guān)注微博
返回頂部