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

java按指定编码写入和读取文件内容的类

2016-07-23 08:43 866 查看
InputStreamReader类是从字节到字符的转化桥梁,OutputstreamWriter类是从字符到字节的转化桥梁。所以如果需要添加上编码时只需要在生成IInputStreamReader或者OutputstreamWriter对象的时候加上编码格式即可。

对于文件,只需要从里到外包装FileInputStream,InputStreamReader,BufferedReader即可。即先是读到字节,然后字节转化为字符,然后把字符送到缓冲区。

转载自http://blog.csdn.net/yaerfeng/article/details/19345597

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class ReadWriteFileWithEncode {

public static void write(String path, String content, String encoding)
throws IOException {
File file = new File(path);
file.delete();
file.createNewFile();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(file), encoding));
writer.write(content);
writer.close();
}

public static String read(String path, String encoding) throws IOException {
String content = "";
File file = new File(path);
BufferedReader reader = new BufferedReader(new InputStreamReader(
new FileInputStream(file), encoding));
String line = null;
while ((line = reader.readLine()) != null) {
content += line + "\n";
}
reader.close();
return content;
}

public static void main(String[] args) throws IOException {
String content = "中文内容";
String path = "c:/test.txt";
String encoding = "utf-8";
ReadWriteFileWithEncode.write(path, content, encoding);
System.out.println(ReadWriteFileWithEncode.read(path, encoding));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: