您的位置:首页 > 编程语言 > Java开发

遇到的问题------java读写txt出现乱码

2013-10-08 15:22 381 查看
Java FileWriter 默认是用(ISO-8859-1 or US-ASCII)西方编码的,总之不是UTF-8的,而FileWriter类有getEncoding方法,却没有setEncoding的方法,如下的写法可以使正确输出UTF-8的文件:

OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(path),"UTF-8");

或者

Writer out = new BufferedWriter( new OutputStreamWriter(new FileOutputStream(this.outputFilename),”UTF-8″));

把FileWriter修改为用FileOutputStream并设置编码即可解决乱码问题,修改的地方如下:

注释的为原用法

写文件:

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),"utf-8");
BufferedWriter writer=new BufferedWriter(write);
// BufferedWriter writer = new BufferedWriter(new FileWriter(f));
writer.write(fileContent);
writer.close();
} catch (Exception e)
{
e.printStackTrace();
}
}


读文件:

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: