当前位置: 移动技术网 > IT编程>开发语言>Java > Java 中的FileReader和FileWriter源码分析_动力节点Java学院整理

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

2019年07月22日  | 移动技术网IT编程  | 我要评论

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 测试程序
 *
 * 
 */
 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源码分析,希望对大家有所帮助

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网