zoukankan      html  css  js  c++  java
  • 详解 字符便捷流

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

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



    字符便捷流:

    概念

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

  • 相关阅读:
    【VS开发】CTimeSpan类
    【VS开发】CTimeSpan类
    【VS开发】【电子电路技术】PCI与PCIE主板插卡与插槽识别
    【VS开发】【电子电路技术】PCI与PCIE主板插卡与插槽识别
    【VS开发】PCIe体系结构的组成部件
    【VS开发】PCIe体系结构的组成部件
    【VS开发】【DSP开发】WinDriver简介(或介绍)
    转载 ------ 三次指数平滑法
    转载:二次指数平滑法求预测值的Java代码
    转载: 通过反射操作类的私有属性
  • 原文地址:https://www.cnblogs.com/codderYouzg/p/12418588.html
Copyright © 2011-2022 走看看