Java讀寫txt文件時防止中文亂碼問題出現(xiàn)的方法介紹
問題:在用Java程序進(jìn)行讀寫含中文的txt文件時,經(jīng)常會出現(xiàn)讀出或?qū)懭氲膬?nèi)容會出現(xiàn)亂碼。原因其實(shí)很簡單,就是系統(tǒng)的編碼和程序的編碼采用了不同的編碼格式。通常,假如自己不修改的話,windows自身采用的編碼格式是gbk(而gbk和gb2312基本上是一樣的編碼方式),而IDE中Encode不修改的話,默認(rèn)是utf-8的編碼,這就是為什么會出現(xiàn)亂碼的原因。當(dāng)在OS下手工創(chuàng)建并寫入的txt文件(gbk),用程序直接去讀(utf-8),就會亂碼。為了避免可能的中文亂碼問題,最好在文件寫入和讀出的時候顯式指定編碼格式。
1、寫文件:
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();
}
}
2、讀文件:
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;
}
read.close();
}
} catch (Exception e)
{
e.printStackTrace();
}
return fileContent;
}
相關(guān)文章
SpringBoot+Redis實(shí)現(xiàn)數(shù)據(jù)字典的方法
這篇文章主要介紹了SpringBoot+Redis實(shí)現(xiàn)數(shù)據(jù)字典的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
SpringBoot中使用websocket出現(xiàn)404的解決方法
在Springboot中使用websocket時,本地開發(fā)環(huán)境可以正常運(yùn)行,但部署到服務(wù)器環(huán)境出現(xiàn)404問題,所以本文小編講給大家詳細(xì)介紹一下SpringBoot中使用websocket出現(xiàn)404的解決方法,需要的朋友可以參考下2023-09-09
使用SpringCache操作Redis緩存數(shù)據(jù)的示例代碼
SpringCache是一個框架,實(shí)現(xiàn)了基于注解的緩存功能,只需要簡單的加一個注解,就能實(shí)現(xiàn)緩存功能,本文給大家介紹了如何使用SpringCache操作Redis緩存數(shù)據(jù),文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2024-01-01
Mybatis使用typeHandler加密的實(shí)現(xiàn)
本文詳細(xì)介紹了如何在Mybatis中使用typeHandler對特定字段進(jìn)行加密處理,涵蓋了從引入依賴、配置Mybatis,到實(shí)現(xiàn)typeHandler繼承類和配置mapper層的詳細(xì)步驟,為需要在項目中實(shí)現(xiàn)字段加密的開發(fā)者提供了參考和借鑒2024-09-09
Java設(shè)計模塊系列之書店管理系統(tǒng)單機(jī)版(三)
這篇文章主要為大家詳細(xì)介紹了Java單機(jī)版的書店管理系統(tǒng)設(shè)計模塊和思想第三章,感興趣的小伙伴們可以參考一下2016-08-08
詳解關(guān)于SpringBoot的外部化配置使用記錄
這篇文章主要介紹了詳解關(guān)于SpringBoot的外部化配置使用記錄,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05

