详解 字符便捷流
(请观看本人博文——《详解 字符流》)
对于字符便捷流,我们可以认为是不能指定 编码集 和 字节缓冲区大小 的 字符转换流
就是因为我们在使用这个流的时候,不需要自己去设置上述两者,所以我们称其为字符便捷流
字符便捷流:
概念:
字符转换流的子类,
此类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的。
(本人在这里对上述的默认字符编码做下解释:
即 平台默认编码,
同一台电脑上,不同软件之间 或者 同一个Jar包 在 不同运行软件 的默认字符编码都可能使不同的)
文件是否可用或是否可以被创建取决于底层平台
特别是某些平台一次只允许一个 FileWriter(或其他文件写入对象)打开文件进行写入
在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法将失败
那么,本人就来讲解下 这个类的 输出流 和 输入流:
FileWriter 类:
(输出流)
本人现在来展示下这个类的构造方法:
- FileWriter(File file)
根据给定的 File 对象构造一个 FileWriter 对象- FileWriter(File file, boolean append)
根据给定的 File 对象构造一个 FileWriter 对象- FileWriter(FileDescriptor fd)
构造与某个文件描述符相关联的 FileWriter 对象- FileWriter(String fileName)
根据给定的文件名构造一个 FileWriter 对象- FileWriter(String fileName, boolean append)
根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象
这个类的常用API也是write(),至于用法,和字符转换流一致,本人来展示下:
- public void write(int c)
写一个字符- public void write(char[] cbuf)
写一个字符数组- public void write(char[] cbuf,int off,int len)
写一个字符数组的 一部分- public void write(String str)
写一个字符串- public void write(String str,int off,int len)
写一个字符串的一部分
FileReader 类:
(输入流)
本人现在来展示下这个类的构造方法:
- FileReader(File file)
在给定从中读取数据的 File 的情况下创建一个新 FileReader- FileReader(FileDescriptor fd)
在给定从中读取数据的 FileDescriptor 的情况下创建一个新 FileReader- FileReader(String fileName)
在给定从中读取数据的文件名的情况下创建一个新 FileReader
这个类的常用API也是read(),至于用法,和转换流一致,本人再来展示下:
- public void write(int c)
写一个字符- public void write(char[] cbuf)
写一个字符数组- public void write(char[] cbuf,int off,int len)
写一个字符数组的 一部分- public void write(String str)
写一个字符串- public void write(String str,int off,int len)
写一个字符串的一部分
那么,本人现在用便捷流来展示文本文件的复制操作:
package edu.youzg.about_io.about_file.core;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Test {
public static void main(String[] args) throws IOException {
FileReader in = new FileReader("test.txt");
FileWriter out = new FileWriter("copyView2.txt");
char[] chars=new char[1000];
int len=0;
while ((len = in.read(chars))!=-1){
out.write(chars,0,len);
out.flush();
}
//释放资源
in.close();
out.close();
}
}
首先,本人来展示下源文件(test.txt)中的内容:
现在,本人来展示下运行后生成的文本文件的内容:
那么,可以看到,我们完成了对文本文件的复制!
至于便捷流,我们所应用场景一般都会这是这种文件的复制的操作(或其分操作)
而且字符便捷流 和 字符转换流的使用啥的都差不多相同,我们只需记住这个类的构造方法即可
(本人《详解 字节流 与 字符流》博文链接:https:////www.cnblogs.com/codderYouzg/p/12418532.html)
(本人 I/O流总集篇 博文链接:https:////www.cnblogs.com/codderYouzg/p/12418404.html)