详解 字符便捷流

(请观看本人博文——《详解 字符流》

对于字符便捷流,我们可以认为是不能指定 编码集字节缓冲区大小 的 字符转换流
就是因为我们在使用这个流的时候,不需要自己去设置上述两者,所以我们称其为字符便捷流

字符便捷流:

概念

字符转换流的子类
此类的构造方法假定默认字符编码默认字节缓冲区大小都是适当的。
(本人在这里对上述的默认字符编码做下解释:
平台默认编码
同一台电脑上,不同软件之间 或者 同一个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)
    一个字符串的一部分

那么,本人现在用便捷流来展示文本文件的复制操作:

扫描二维码关注公众号,回复: 9044482 查看本文章
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://blog.csdn.net/weixin_45238600/article/details/104219482
(本人《详解 字节流 与 字符流》博文链接:https://blog.csdn.net/weixin_45238600/article/details/104170259
(本人“I/O流”总集篇博文链接:https://blog.csdn.net/weixin_45238600/article/details/104153031

发布了133 篇原创文章 · 获赞 82 · 访问量 6016

猜你喜欢

转载自blog.csdn.net/weixin_45238600/article/details/104219470