Java 解決讀寫(xiě)本地文件中文亂碼的問(wèn)題
Java 解決讀寫(xiě)本地文件中文亂碼的問(wèn)題
前言:
在用Java程序進(jìn)行讀寫(xiě)含中文的txt文件時(shí),經(jīng)常會(huì)出現(xiàn)讀出或?qū)懭氲膬?nèi)容會(huì)出現(xiàn)亂碼。原因其實(shí)很簡(jiǎn)單,就是系統(tǒng)的編碼和程序的編碼采用了不同的編碼格式。通常,假如自己不修改的話(huà),windows自身采用的編碼格式是gbk(而gbk和gb2312基本上是一樣的編碼方式),而IDE中Encode不修改的話(huà),默認(rèn)是utf-8的編碼,這就是為什么會(huì)出現(xiàn)亂碼的原因。當(dāng)在OS下手工創(chuàng)建并寫(xiě)入的txt文件(gbk),用程序直接去讀(utf-8),就會(huì)亂碼。為了避免可能的中文亂碼問(wèn)題,最好在文件寫(xiě)入和讀出的時(shí)候顯式指定編碼格式。
按行讀取本地文件:
public static String readFile(String fileName) { String fileContent = ""; try { File f = new File(fileName); if (f.isFile() && f.exists()) { InputStreamReader read = new InputStreamReader( new FileInputStream(f), "gbk"); BufferedReader reader = new BufferedReader(read); String line; while ((line = reader.readLine()) != null) { fileContent += line+"\n"; } read.close(); } } catch (Exception e) { e.printStackTrace(); } return fileContent; }
寫(xiě)入本地文件:
public static void writeFile(String fileName, String fileContent) { try { File f = new File(fileName); if (!f.exists()) { f.createNewFile(); } OutputStreamWriter write = new OutputStreamWriter( new FileOutputStream(f), "gbk"); BufferedWriter writer = new BufferedWriter(write); writer.write(fileContent); writer.close(); } catch (Exception e) { e.printStackTrace(); } }
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- 解決javaWEB中前后臺(tái)中文亂碼問(wèn)題的3種方法
- java中form以post、get方式提交數(shù)據(jù)中文亂碼問(wèn)題總結(jié)
- java壓縮zip文件中文亂碼問(wèn)題解決方法
- java中Filter過(guò)濾器處理中文亂碼的方法
- java 頁(yè)面url傳值中文亂碼的解決方法
- Java讀寫(xiě).properties文件解決中文亂碼問(wèn)題
- JAVA POST與GET數(shù)據(jù)傳遞時(shí)中文亂碼問(wèn)題解決方法
- java 逐行讀取txt文本如何解決中文亂碼
- java頁(yè)面中文亂碼的解決辦法
- Java中文亂碼解決方案全解析,讓你的程序“說(shuō)人話(huà)”!
相關(guān)文章
SpringBoot集成antlr實(shí)現(xiàn)詞法和語(yǔ)法分析
Antlr4 是一款強(qiáng)大的語(yǔ)法生成器工具,可用于讀取、處理、執(zhí)行和翻譯結(jié)構(gòu)化的文本或二進(jìn)制文件,基本上是當(dāng)前 Java 語(yǔ)言中使用最為廣泛的語(yǔ)法生成器工具,本文給大家介紹了SpringBoot集成antlr實(shí)現(xiàn)詞法和語(yǔ)法分析,需要的朋友可以參考下2024-06-06Feign實(shí)現(xiàn)多文件上傳,Open?Feign多文件上傳問(wèn)題及解決
這篇文章主要介紹了Feign實(shí)現(xiàn)多文件上傳,Open?Feign多文件上傳問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11關(guān)于SpringBoot2.7.6連接nacos遇到的一些問(wèn)題
這篇文章主要介紹了關(guān)于SpringBoot2.7.6連接nacos遇到的一些問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06IntelliJ IDEA中程序包org.slf4j找不到的解決
這篇文章主要介紹了IntelliJ IDEA中程序包org.slf4j找不到的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11springboot 啟動(dòng)如何修改application.properties的參數(shù)
這篇文章主要介紹了springboot 啟動(dòng)如何修改application.properties的參數(shù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08Java8默認(rèn)方法Default Methods原理及實(shí)例詳解
這篇文章主要介紹了Java8默認(rèn)方法Default Methods原理及實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01