• 缓冲流(2)


    使用缓冲流复制文件

    步骤:

    1. 创建字节缓冲输入流对象,构造方法中传递字节输入流
    2. 创建字节缓冲输出流对象,构造方法中传递字节输出流
    3. 使用字节缓冲输入流对象中的方法read,读取文件
    4. 使用字节缓冲输出流的方法write,把读取的数据写入到内部缓冲区中
    5. 释放资源(会先把缓冲区中的数据,刷新到文件中)

    代码演示:

    package day9;
    
    import java.io.*;
    
    public class CopyFile {
        public static void main(String[] args) throws IOException {
            BufferedInputStream  bis = new BufferedInputStream(new FileInputStream("C:\a\b.txt"));
            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("C:\a\r.txt"));
    
            byte[] bytes = new byte[1024];
            int len = 0;
            while((len = bis.read(bytes))!=-1){
                bos.write(bytes,0,len);
            }
            
            bos.close();
            bis.close();
        }
    }
    

    BufferedWriter_字符缓冲输出流

    java.io.BufferedWriter extends Writer

    BufferedWriter:字符缓冲输出流

    继承自父类的共性成员方法:

    • void write(int c)写入单个字符
    • void write(char[] cbuf)写入字符数组
    • abstract void write(char[] cbuf,int off,int len)写入字符数组的某一部分,off数组的开始索引,len写的字符个数。
    • void write(String str)写入字符串。
    • void write(String str,int off,int len)写入字符串的某一部分,off字符串的开始索引,len写的字符个数。
    • void flush()刷新该流的缓冲。
    • void close()关闭此流,但要先刷新它。

    构造方法:

    BufferedWriter(Writer out)创建一个使用默认大小输出缓冲区的缓冲字符输出流。

    BufferedWriter(Writer out,int sz)创建一个使用给定大小输出缓冲区的新缓冲字符输出流。

    参数:

    Writer out:字符输出流

    我们可以传递FileWriter,缓冲流会给FileWriter增加一个缓冲区,提高FileWriter的写入效率。

    int sz:指定缓冲区的大小,不写默认大小。

    特有的成员方法:

    void newLine()写入一个行分隔符,会根据不同的操作系统,获取不同的行分割符。

    使用步骤(重点):

    1. 创建字符缓冲输出流对象,构造方法中传递字符输出流
    2. 调用字符缓冲输出流中的方法write,把数据写入到内存缓冲区中
    3. 调用字符缓冲输出流中的方法flush,把内存缓冲区中的数据,刷新到文件中
    4. 释放资源

    代码演示:

    package day9;
    
    import java.io.BufferedWriter;
    import java.io.FileWriter;
    import java.io.IOException;
    
    public class BufferedWrite01 {
        public static void main(String[] args) throws IOException {
            BufferedWriter bw = new BufferedWriter(new FileWriter("C:\a\w.txt"));
            for (int i = 0; i < 10; i++) {
                bw.write("小明");
                bw.newLine();
            }
            
            bw.flush();
            bw.close();
        }
    }
    

    BufferedReader_字符缓冲输入流

    java.io.BufferedReader extends Reader

    继承自父类的共性成员方法:

    • int read()读取单个字符并返回
    • int read(char[] cbuf)一次读取多个字符,将字符读入数组。
    • void close()关闭该流并释放与之关联的所有资源

    构造方法:

    BufferedReader(Reader in)创建一个使用默认大小输入缓冲区的缓冲字符输入流。

    BufferedReader(Reader in,int sz)创建一个使用指定大小输入缓冲区的缓冲字符输入流。

    参数:

    Reader in:字符输入流

    我们可以传递FileReader,缓冲流会给FileReader增加一个缓冲弄过去,提高FileReader的读取效率

    特有的成员方法:

    String readLine()读取一个文本行,读取一行数据

    ​ 行的终止符号:通过下列字符之一即可认为某行已终止:韩航(' ')回车(' ')或回车后直接跟着换行( )。

    返回值:

    ​ 包含该行内容的字符串,不包含任何行中支付,如果已到达流末尾,则返回null。

    使用步骤:

    1. 创建字符缓冲输入流对象,构造方法中传递字符输入流。
    2. 使用字符缓冲输入流一对象中的方法read/readLine读取文本
    3. 释放资源。

    代码演示:

    package day9;
    
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;
    
    public class BufferedReader01 {
        public static void main(String[] args) throws IOException {
            BufferedReader br = new BufferedReader(new FileReader("C:\a\w.txt"));
    
            //一行一行的读
            String line = br.readLine();
            System.out.println(line);
    
            //使用循环读取
    //        String line;
    //        while((line = br.readLine())!=null){
    //            System.out.println(line);
    //        }
    
            br.close();
        }
    }
    
  • 相关阅读:
    Collection
    DP
    JVM
    算法 *-* 并查集Union-Find(连通性)
    log4j
    log4j
    第254期:宠物如何导航回家
    第254期:宠物如何导航回家
    多线程
    多线程
  • 原文地址:https://www.cnblogs.com/Xiaoming0/p/13956225.html
Copyright © 2020-2023  润新知