FileReader和FileWriter源碼分析
1. FileReader 源碼(基於jdk1.7.40)
package java.io;
public class FileReader extends InputStreamReader {
public FileReader(String fileName) throws FileNotFoundException {
super(new FileInputStream(fil java io系列21之 InputStreamReader和OutputStreamWritereName));
}
public FileReader(File file) throws FileNotFoundException {
super(new FileInputStream(file));
}
public FileReader(FileDescriptor fd) {
super(new FileInputStream(fd));
}
}
從中,我們可以看出FileReader是基於InputStreamReader實現的。
2. FileWriter 源碼(基於jdk1.7.40)
package java.io;
public class FileWriter extends OutputStreamWriter {
public FileWriter(String fileName) throws IOException {
super(new FileOutputStream(fileName));
}
public FileWriter(String fileName, boolean append) throws IOException {
super(new FileOutputStream(fileName, append));
}
public FileWriter(File file) throws IOException {
super(new FileOutputStream(file));
}
public FileWriter(File file, boolean append) throws IOException {
super(new FileOutputStream(file, append));
}
public FileWriter(FileDescriptor fd) {
super(new FileOutputStream(fd));
}
}
從中,我們可以看出FileWriter是基於OutputStreamWriter實現的。
示例程序
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;;
import java.io.FileReader;
import java.io.IOException;
/**
* FileReader 和 FileWriter 測試程序
*
* @author skywang
*/
public class FileReaderWriterTest {
private static final String FileName = "file.txt";
private static final String CharsetName = "utf-8";
public static void main(String[] args) {
testWrite();
testRead();
}
/**
* OutputStreamWriter 演示函數
*
*/
private static void testWrite() {
try {
// 創建文件“file.txt”對應File對象
File file = new File(FileName);
// 創建FileOutputStream對應FileWriter:將字節流轉換為字符流,即寫入out1的數據會自動由字節轉換為字符。
// 查看本欄目
c1=字
buf=流示例0123456
來源:http://www.cnblogs.com/skywang12345/p/io_22.html