JAVA基础之IO流(三)Buffered流

1. BufferedReader:

带有缓冲区的字符输入流,使用这个流的时候不需要自定义char数组,或者不需要自定义byte数组,自带缓冲。

  • 构造方法:

在这里插入图片描述

  • 当一个流的构造方法中需要一个流的时候,这个被传进来的流叫做:节点流
  • 外部负责包装的这个流,叫做:包装流,或者叫:处理流
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class BufferedReaderTest01 {
    public static void main(String[] args) throws IOException {
        FileReader reader = null;
        reader = new FileReader("testcopy.txt");

        //当一个流的构造方法中需要一个流的时候,这个被传进来的流叫做:节点流
        // 外部负责包装的这个流,叫做:包装流,或者叫:处理流
        BufferedReader br = new BufferedReader(reader);
        //读一行
//        String firstLine = br.readLine();
//        System.out.println(firstLine);
//        String secondLine = br.readLine();
//        System.out.println(secondLine);
        //什么时候算读完??? 
        String s = null;
        while ((s = br.readLine()) != null){
            System.out.print(s);//不带换行符
        }

        // 关闭流
        // 对于包装流来说,只需要关闭最外层流就行,里面的节点流会自动关闭
        br.close();
    }
}


2. 转换流:InputStreamReader

import java.io.*;

public class BufferedReaderTest02 {
    public static void main(String[] args) throws IOException {
        //字节流
        FileInputStream in = new FileInputStream("testcopy.txt");
        //通过转换流转换:将字节流转换成字符流,这里in是节点流,reader是包装流
        InputStreamReader reader = new InputStreamReader(in);
        //这里reader是节点流,br是包装流
        BufferedReader br = new BufferedReader(reader);//然而这里需要字符流,怎么办?使用转换流


        String line = null;
        while ((line = br.readLine()) != null){
            System.out.println(line);;
        }
        br.close();
    }

}

3. BufferedWriter:

在这里插入图片描述

4. 标准输出流:PrintStream

日志框架实现原理:
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Java文件输入输出各种类的代码示例: 1. FileInputStream和FileOutputStream 读取文件内容并写入文件: ```java import java.io.*; public class FileCopy { public static void main(String[] args) { try { FileInputStream input = new FileInputStream("input.txt"); FileOutputStream output = new FileOutputStream("output.txt"); int data; while ((data = input.read()) != -1) { output.write(data); } input.close(); output.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 2. FileReader和FileWriter 读取文本文件内容并写入文本文件: ```java import java.io.*; public class FileCopy { public static void main(String[] args) { try { FileReader reader = new FileReader("input.txt"); FileWriter writer = new FileWriter("output.txt"); int data; while ((data = reader.read()) != -1) { writer.write(data); } reader.close(); writer.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 3. BufferedInputStream和BufferedOutputStream 使用缓冲区读取文件内容并写入文件: ```java import java.io.*; public class FileCopy { public static void main(String[] args) { try { FileInputStream input = new FileInputStream("input.txt"); FileOutputStream output = new FileOutputStream("output.txt"); BufferedInputStream bufferedInput = new BufferedInputStream(input); BufferedOutputStream bufferedOutput = new BufferedOutputStream(output); int data; while ((data = bufferedInput.read()) != -1) { bufferedOutput.write(data); } bufferedInput.close(); bufferedOutput.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 4. BufferedReader和BufferedWriter 使用缓冲区读取文本文件内容并写入文本文件: ```java import java.io.*; public class FileCopy { public static void main(String[] args) { try { FileReader reader = new FileReader("input.txt"); FileWriter writer = new FileWriter("output.txt"); BufferedReader bufferedReader = new BufferedReader(reader); BufferedWriter bufferedWriter = new BufferedWriter(writer); String line; while ((line = bufferedReader.readLine()) != null) { bufferedWriter.write(line); bufferedWriter.newLine(); } bufferedReader.close(); bufferedWriter.close(); } catch (IOException e) { e.printStackTrace(); } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值