java io系列22之 FileReader和FileWriter
来源:互联网 发布:时尚杂志推荐 知乎 编辑:程序博客网 时间:2024/06/05 01:56
本文摘抄至 : skywang12345
摘要 : FileReader文件字符输入流、用于将文件内容以字符形式读取出来、一般用于读取字符形式的文件内容、也可以读取字节形式、实际上就是 调用父类(InputStreamReader)的 默认编码读取方法。FileWriter 文件字符输出流、主要用于将字符写入到指定的打开的文件。其实就是调用父类(OutputStreamWriter)默认编码函数。由于编码不可控,使用不是太灵活。
FileReader 是用于读取字符流的类,它继承于 InputStreamReader。要读取原始字节流,请考虑使用 FileInputStream。
FileWriter 是用于写入字符流的类,它继承于OutputStreamWriter。要写入原始字节流,请考虑使用 FileOutputStream。
FileReader和FileWriter源码分析
1. FileReader 源码(基于jdk1.7.40
package java.io;public class FileReader extends InputStreamReader { //在给定从中读取数据的文件名的情况下创建一个新 FileReader。 public FileReader(String fileName) throws FileNotFoundException { super(new FileInputStream(fileName)); } //在给定从中读取数据的 File 的情况下创建一个新 FileReader。 public FileReader(File file) throws FileNotFoundException { super(new FileInputStream(file)); } //在给定从中读取数据的 FileDescriptor 的情况下创建一个新 FileReader。 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实现的。
示例程序
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(); } private static void testWrite() { try { // 创建文件“file.txt”对应File对象 File file = new File(FileName) ; // 创建FileOutputStream对应FileWriter:将字节流转换为字符流, //即写入out1的数据会自动由字节转换为字符。 FileWriter out1 = new FileWriter(file) ; // 写入10个汉字 out1.write("字节流转为字符流示例"); // 向“文件中”写入"0123456789"+换行符 out1.write("0123456789\n"); out1.close(); } catch (Exception e) { e.printStackTrace() ; } } 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))); in1.close(); } catch (Exception e) { e.printStackTrace(); } }}
运行结果:
c1=字
buf=流示例0123456
0 0
- java io系列22之 FileReader和FileWriter
- java io系列22之 FileReader和FileWriter
- Java-IO之FileReader和FileWriter
- Java IO FileReader和FileWriter
- java核心技术之IO流(三)FileReader和FileWriter
- Java IO - FileReader&FileWriter
- Java IO(十四):FileReader 和 FileWriter
- Java的IO流--FileWriter和FileReader
- 字符输入输出流:java.io.FileReader和java.io.FileWriter
- Java FileReader 和 FileWriter
- Java-FileReader和FileWriter
- java FileWriter和FileReader
- IO流之FileReader、FileWriter
- Java--IO流(FileReader,FileWriter)
- java基础之IO流中的FileReader和FileWriter的认识和实现
- Java基础之IO流中使用FileWriter和FileReader实现拷贝文件
- Java之IO(二)FileReader、FileWriter、BufferedReader、BufferedWriter
- JAVA中常用IO流类:FileReader和FileWriter
- 常用的正则表达
- php基础知识的灵活使用
- skynet框架 源码分析 一
- C#将Bitmap转换成byte[],可以传给C++处理。
- 第7周项目4 队列数组
- java io系列22之 FileReader和FileWriter
- android设置TextView中文字不同的颜色
- 第7周项目4-队列数组
- 通知
- springmvc+ajax 实现jquer autocomplete 联想查询(动态添加、删除行)
- 第七周项目五(排队看病模拟)
- Camera.cullingMask 常用操作
- maven添加外部yi'la
- 第7周项目6 停车场模拟