Java 中的FileReader和FileWriter源码分析_动力节点Java学院整理

网友投稿 245 2023-05-14


Java 中的FileReader和FileWriter源码分析_动力节点Java学院整理

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之 IUSdnhnputStreamReader和OutputStreamWritereName));

}

public FileReader(File file) throws FileNotFoundException {

super(new FileInputStream(file));

}

public FileReader(FileDescriptor fd) {

super(new FileInputStream(fd));

}

}

从中,我们可以看出FileReader是基于Inputhttp://StreamReader实现的。

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 测试程序

*

*

*/

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:将字节流转换为字符流,即写入out的数据会自动由字节转换为字符。

FileWriter out = new FileWriter(file);

// 写入10个汉字

out1.write("字节流转为字符流示例");

// 向“文件中”写入"0123456789"+换行符

out1.write("0123456789\n");

out1.close();

} catch(IOException e) {

e.printStackTrace();

}

}

/**

* InputStreamReader 演示程序

*/

private static void testRead() {

try {

// 方法1:新建FileInputStream对象

// 新建文件“file.txt”对应File对象

File file = new File(FileName);

FileReader in1 = new FileReader(file);

// 测试read(),从中读取一个字符

char c1 = (char)in1.read();

System.out.println("c1="+c1);

// 测试skip(long byteCount),跳过4个字符

in1.skip(6);

// 测试read(char[] cbuf, int off, int len)

char[] buf = new char[10];

in1.read(buf, 0, buf.length);

System.out.println("buf="+(new String(buf)));

in.close();

} catch(IOException e) {

e.printStackTrace();

}

}

}

运行结果:

c1=字

buf=流示例0123456

以上所述是给大家介绍的Java 中的FileReader和FileWriter源码分析,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Vue2 使用 Echarts 创建图表实例代码
下一篇:vue学习笔记之vue1.0和vue2.0的区别介绍
相关文章

 发表评论

暂时没有评论,来抢沙发吧~