问题:在用Java程序进行读写含中文的txt文件时,经常会出现读出或写入的内容会出现乱码。原因其实很简单,就是系统的编码和程序的编码采用了不同的编码格式。通常,假如自己不修改的话,windows自身采用的编码格式是gbk(而gbk和gb2312基本上是一样的编码方式),而IDE中Encode不修改的话,默认是utf-8的编码,这就是为什么会出现乱码的原因。当在OS下手工创建并写入的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;
}
相关推荐
Java读取TXT文本文件乱码解决方案.doc
彻底解决JAVA读取写入 TXT中文乱码问题 源码
NULL 博文链接:https://thinktothings.iteye.com/blog/1536044
java 解析csv文件例子,csv文件 中文乱码问题
java读取文件中文乱码
java读写文件避免中文乱码.docx
解决JAVA读取properties中文乱码问题
主要介绍了Java 解决读写本地文件中文乱码的问题的相关资料,需要的朋友可以参考下
java读取txt文本中如含有中文,可能会出现乱码,解决方案是: 1.要统一编码,java工程的编码,txt文本编码,java工程中的java文本编码都统一为utf-8; 2.利用 InputStreamReader(new FileInputStream(fileUrl), ...
java读取远程网页乱码解决方案 java读取远程网页乱码解决方案
java读写文件避免中文乱码.pdf
主要介绍了Java读写txt文件时防止中文乱码问题出现的方法,同时需要注意系统默认的文本保存编码的设置,需要的朋友可以参考下
java 读取txt文件,文件中包含汉字和英文。并且含有乱码处理的方法。
该项目包含了项目所需要的jar包以及测试案例。项目使用环境为eclipse jdk1.8 1.poi.Testpoi为测试用例;...3.解决了javadbf读取dbf文件表头和数据乱码问题,com.webadmin.util.dbf.DBFReaderTest为测试用例。
ava中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去...
2、当TXT文件内容包含中文时,有时会显示乱码,解决方法:打开TXT文件,在“另存为”对话框中选择“UTF-8”格式); 3、当TXT文件名为中文时,无法读取,页面会显示空白内容; 4、经测试,只有搜狗告诉浏览器可以...
NULL 博文链接:https://liuzidong.iteye.com/blog/776637
以前用VC读取txt里数据的时候,非常方便,例如: 2 34 56 3 23 67 之类的, 但是在java里不是这么简单,不注意的话读出来的是乱码,我在网上查了资料,然后自己结合写了一个小程序,实现了方便读取数据