关于 java.io.FileReader 和 java.io.FileWriter 的部分笔记,这两个类实现了对文件的字符级别的读写操作。FileReader和FileWriter中对于文件的读写操作方法全部来自于继承的父类中,自身仅包含了对于底层输入流的初始化方法。本文演示代码段的执行环境基于JDK版本1.7。
概述
FileReader和FileWriter用来完成关于文件字符流的读写操作。在读写文件时,采用的都是默认的字符街编码格式。而且,这两个类仅仅用来处理字符流的操作,若要采用字节流的处理方式,那么需要使用FileInputStream和FileOutputStream来完成操作。
需要注意的是,FileWriter在打开文件时依赖于底层平台的特性,某些平台仅允许一个文件同时只能被一个FileWriter打开,所以如果当前某个文件已经被一个FileWriter打开,再次尝试通过一个新的FileWriter打开同一个文件时会打开失败且抛出异常。
继承关系
1 | // FileReader |
实现接口
类名 | 实现接口 |
---|---|
FileReader | Closeable, AutoCloseable,Readable |
FileWriter | Closeable, Flushable, AutoCloseable, Appendable |
FileReader
Constructor Summary
public FileReader(String fileName)
1 | public FileReader(String fileName) throws FileNotFoundException { |
初始化一个文件字符输入流。参数是一个包含路径的文件名,首先通过文件名初始化一个文件字节输入流,然后在通过父类的构造方法完成底层输入流的初始化操作。FileReader中不包含任何字符流操作,所以FileReader中没有底层输入流的存在,底层输入流在其父类InputStreamReader中。
public FileReader(File file)
1 | public FileReader(File file) throws FileNotFoundException { |
初始化一个文件字符输入流。参数是一个文件对象,首先初始化一个文件字节输入流,然后在通过父类的构造方法完成底层输入流的初始化操作。
public FileReader(FileDescriptor fd)
1 | public FileReader(FileDescriptor fd) { |
初始化一个文件字符输入流。参数是一个文件描述符对象,首先初始化一个文件字节输入流,然后在通过父类的构造方法完成底层输入流的初始化操作。
部分方法
来自于java.io.InputStreamReader的方法:
方法声明 | 备注 |
---|---|
public void close() | 实现父类Reader的抽象方法 |
public String getEncoding() | InputStreamReader独有方法 |
public int read() | 重写父类Reader的同名方法 |
public int read(char[] cbuf, int offset, int length) | 实现父类Reader的抽象方法 |
public boolean ready() | 重写父类Reader的同名方法 |
来自于java.io.Reader的方法:
方法声明 | 备注 |
---|---|
public void mark(int readAheadLimit) | |
public boolean markSupported() | |
public int read(char[] cbuf) | |
public int read(CharBuffer target) | |
public void reset() | |
public long skip(long n) |
FileWriter
Constructor Summary
public FileWriter(String fileName)
1 | public FileWriter(String fileName) throws IOException { |
初始化一个文件字符输出流。参数是一个包含路径的文件名,首先通过文件名初始化一个文件字节输出流,然后在通过父类的构造方法完成底层输出流的初始化操作。FileWriter中不包含任何字符流操作,所以FileWriter中没有底层输入流的存在,底层输入流在其父类OutputStreamWriter中。
public FileWriter(String fileName, boolean append)
1 | public FileWriter(String fileName, boolean append) throws IOException { |
初始化一个文件字符输出流。参数是一个包含路径的文件名,首先通过文件名初始化一个文件字节输出流,同时由参数append决定文件的写入方式是结尾追加写入还是从文件头部覆盖写入,然后在通过父类的构造方法完成底层输出流的初始化操作。
public FileWriter(File file)
1 | public FileWriter(File file) throws IOException { |
初始化一个文件字符输出流。参数是一个文件对象,首先初始化一个文件字节输出流,然后在通过父类的构造方法完成底层输出流的初始化操作。
public FileWriter(File file, boolean append)
1 | public FileWriter(File file, boolean append) throws IOException { |
初始化一个文件字符输出流。参数是一个文件对象,首先初始化一个文件字节输出流,同时由参数append决定文件的写入方式是结尾追加写入还是从文件头部覆盖写入,然后在通过父类的构造方法完成底层输出流的初始化操作。
public FileWriter(FileDescriptor fd)
1 | public FileWriter(FileDescriptor fd) { |
初始化一个文件字符输出流。参数是一个文件描述符,首先初始化一个文件字节输出流,然后在通过父类的构造方法完成底层输出流的初始化操作。
部分方法
来自于java.io.OutputStreamWriter的方法:
方法声明 | 备注 |
---|---|
public void write(int c) | 重写父类Writer的同名方法 |
public void write(char[] cbuf, int off, int len) | 重写父类Writer的同名方法 |
public void write(String str, int off, int len) | 重写父类Writer的同名方法 |
public String getEncoding() | OutputStreamWriter独有方法 |
public void flush() | 实现父类Writer的抽象方法 |
public void close() | 实现父类Writer的抽象方法 |
来自于java.io.Writer的方法:
方法声明 | 备注 |
---|---|
public Writer append(CharSequence csq) | |
public Writer append(CharSequence csq, int start, int end) | |
public Writer append(char c) | |
public void write(String str) | |
public void write(char[] cbuf) |
涉及基础知识点
- NIL
参考文献
- NIL