首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java指定编码读写资料(UTF-8)

2012-12-24 
Java指定编码读写文件(UTF-8)有时我们需要程序动态生成jsp文件,采取系统默认的编码操作的文件出来的结果往

Java指定编码读写文件(UTF-8)

有时我们需要程序动态生成jsp文件,采取系统默认的编码操作的文件出来的结果往往不是我们想要的,原因是中文显示总是是乱码。

?

?

读取

????import?java.io.BufferedReader;?
????import?java.io.FileInputStream;?
????import?java.io.InputStreamReader;?

????String?FileContent?=?"";?//?文件很长的话建议使用StringBuffer
????try?{
????????FileInputStream?fis?=?new?FileInputStream("d:\\input.txt");
????????InputStreamReader?isr?=?new?InputStreamReader(fis,?"UTF-8");
????????BufferedReader?br?=?new?BufferedReader(isr);
????????String?line?=?null;
????????while?((line?=?br.readLine())?!=?null)?{
????????????FileContent?+=?line;
????????????FileContent?+=?"\r\n";?//?补上换行符
????????}
????}?catch?(Exception?e)?{
????????e.printStackTrace();
????}

?

写入

????import?java.io.FileOutputStream;
????import?java.io.OutputStreamWriter;

????String?FileContent?=?"文件内容";
????try?{
????????FileOutputStream?fos?=?new?FileOutputStream("d:\\output.txt");
????????OutputStreamWriter?osw?=?new?OutputStreamWriter(fos,?"UTF-8");
????????osw.write(FileContent);
????????osw.flush();
????}?catch?(Exception?e)?{
????????e.printStackTrace();
????}

?????? 读写文件是最常用的操作之一,每次将相应的代码片段复制过来不仅麻烦,还会影响整体的美观。为此我单独写了一个文件操作的类,需要时先把这个类的代码粘过去,再调用就方便多了。?

import?java.io.BufferedReader;
import?java.io.FileInputStream;
import?java.io.FileOutputStream;
import?java.io.InputStreamReader;
import?java.io.OutputStreamWriter;

public?class?FileManager?{
????public?static?String?read(String?fileName,?String?encoding)?{
????????StringBuffer?fileContent?=?new?StringBuffer();
????????try?{
????????????FileInputStream?fis?=?new?FileInputStream(fileName);
????????????InputStreamReader?isr?=?new?InputStreamReader(fis,?encoding);
????????????BufferedReader?br?=?new?BufferedReader(isr);
????????????String?line?=?null;
????????????while?((line?=?br.readLine())?!=?null)?{
????????????????fileContent.append(line);
????????????????fileContent.append(System.getProperty("line.separator"));
????????????}
????????}?catch?(Exception?e)?{
????????????e.printStackTrace();
????????}
????????return?fileContent.toString();
????}

????public?static?void?write(String?fileContent,?String?fileName,?String?encoding)?{
????????try?{
????????????FileOutputStream?fos?=?new?FileOutputStream(fileName);
????????????OutputStreamWriter?osw?=?new?OutputStreamWriter(fos,?encoding);
????????????osw.write(fileContent);
????????????osw.flush();
????????}?catch?(Exception?e)?{
????????????e.printStackTrace();
????????}
????}
} ?调用示例:写入?FileManager.write("Hello, World!", "D:\\test.txt", "UTF-8");读取 System.out.println(FileManager.read("D:\\test.txt", "UTF-8"));

热点排行