讀取文件的時(shí)候如果是用的read方法(字節(jié)流),碰到中文輸出就是亂碼,然后存儲的時(shí)候設(shè)置下編碼為GBK或者是UTF-8形式即可,可以有效的解決亂碼問題。
創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括南康網(wǎng)站建設(shè)、南康網(wǎng)站制作、南康網(wǎng)頁制作以及南康網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,南康網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到南康省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
可以通過BufferedReader 流的形式進(jìn)行流緩存,之后通過readLine方法獲取到緩存的內(nèi)容。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此時(shí)獲取到的bre就是整個(gè)文件的緩存流
while ((str = bre.readLine())!= null) // 判斷最后一行不存在,為空結(jié)束循環(huán)
{
System.out.println(str);//原樣輸出讀到的內(nèi)容
};
備注: 流用完之后必須close掉,如上面的就應(yīng)該是:bre.close(),否則bre流會一直存在,直到程序運(yùn)行結(jié)束。
可以通過“FileOutputStream”創(chuàng)建文件實(shí)例,之后過“OutputStreamWriter”流的形式進(jìn)行存儲,舉例:
OutputStreamWriter pw = null;//定義一個(gè)流
pw = new OutputStreamWriter(new FileOutputStream(“D:/test.txt”),"GBK");//確認(rèn)流的輸出文件和編碼格式,此過程創(chuàng)建了“test.txt”實(shí)例
pw.write("我是要寫入到記事本文件的內(nèi)容");//將要寫入文件的內(nèi)容,可以多次write
pw.close();//關(guān)閉流
備注:文件流用完之后必須及時(shí)通過close方法關(guān)閉,否則會一直處于打開狀態(tài),直至程序停止,增加系統(tǒng)負(fù)擔(dān)。
要明白,用filewriter讀取文件采取的是平臺默認(rèn)編碼(視操作系統(tǒng)而定)。當(dāng)要寫入的文本文件編碼和平臺默認(rèn)編碼不一致時(shí),就會出現(xiàn)中文亂碼的情況。這時(shí)可以使用filewriter 的父類OutputStreamWriter來讀取。OutputStreamWriter允許用戶指定編碼方式,代碼為:
FileInputStream fis=new FileInputStream("文件路徑");
OutputStreamWriter osw=new OutputStreamWriter(fis,"文本文件的編碼方式(ANSI,UTF-8...)");
osw.write();
這樣寫入的編碼可以保證和源文本文件編碼一致,就不會出現(xiàn)亂碼了。
在將 Python 代碼轉(zhuǎn)換為 Java 代碼時(shí),如果出現(xiàn)中文亂碼問題,可以考慮以下方法解決:
在 Python 代碼中使用 Unicode 編碼,并在 Java 代碼中設(shè)置字符集為 "UTF-8"。
使用 Python 的字符串轉(zhuǎn)碼函數(shù),如 .encode('utf-8') ,將字符串轉(zhuǎn)換為 UTF-8 編碼。
使用 Java 的字符串轉(zhuǎn)碼函數(shù),如 new String(string.getBytes("ISO-8859-1"), "UTF-8") ,將字符串轉(zhuǎn)換為 UTF-8 編碼。
使用 Jython 中的 sys 模塊,設(shè)置系統(tǒng)默認(rèn)編碼為 UTF-8 。
設(shè)置環(huán)境變量,在命令行中輸入 export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8"
這些方法中的任意一種都可能有助于解決中文亂碼問題,但是具體解決方案取決于應(yīng)用程序的具體情況。