BufferedReader PrintWriter

BufferedReader 和 PrintWriter 是 Java 中用于高效读写数据的类,BufferedReader 主要用于从字符输入流中读取文本,PrintWriter 用于将格式化的对象打印到文本输出流。下面为你详细介绍它们的用法并给出示例。

1. BufferedReader 简介

BufferedReader 类提供了缓冲功能,它从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。通常与 InputStreamReader 结合使用,InputStreamReader 用于将字节流转换为字符流。

2. PrintWriter 简介

PrintWriter 类用于向文本输出流打印对象的格式化表示形式。它提供了多种 print 和 println 方法,用于输出不同类型的数据,并且可以自动刷新缓冲区。

3. 用法示例

收起

java

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;

public class MainThrowsExample {
    public static void main(String[] args) throws IOException {
        // 创建 BufferedReader 对象,用于从标准输入读取数据
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        // 创建 PrintWriter 对象,用于向标准输出写入数据
        PrintWriter pw = new PrintWriter(System.out, true);

        // 提示用户输入信息
        pw.println("请输入您的姓名:");
        // 读取用户输入的姓名
        String name = br.readLine();

        // 提示用户输入年龄
        pw.println("请输入您的年龄:");
        // 读取用户输入的年龄
        String ageStr = br.readLine();
        int age = Integer.parseInt(ageStr);

        // 输出用户信息
        pw.println("您好," + name + "!您的年龄是 " + age + " 岁。");

        // 关闭资源
        br.close();
        pw.close();
    }
}

4. 代码解释

4.1 创建对象

收起

java

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
PrintWriter pw = new PrintWriter(System.out, true);

  • BufferedReader:通过 new InputStreamReader(System.in) 将标准输入流(字节流)转换为字符流,再将其作为参数传递给 BufferedReader 构造函数,创建一个带有缓冲功能的字符输入流。
  • PrintWriter:将标准输出流 System.out 作为参数传递给 PrintWriter 构造函数,第二个参数 true 表示自动刷新缓冲区,即每次调用 println 方法后会自动刷新缓冲区。
4.2 读取输入

收起

java

String name = br.readLine();
int age = Integer.parseInt(br.readLine());

  • br.readLine():从输入流中读取一行文本,并返回一个字符串。
  • Integer.parseInt():将读取的字符串转换为整数。
4.3 输出信息

收起

java

pw.println("请输入您的姓名:");
pw.println("您的姓名是:" + name);

  • pw.println():将指定的内容输出到标准输出,并在末尾添加换行符。
4.4 异常处理

收起

java

catch (IOException e) {
    pw.println("读取输入时发生错误:" + e.getMessage());
} catch (NumberFormatException e) {
    pw.println("输入的年龄不是有效的整数:" + e.getMessage());
}

  • IOException:处理输入输出过程中可能出现的异常。
  • NumberFormatException:处理将字符串转换为整数时可能出现的异常。
4.5 关闭资源

收起

java

try {
    if (br != null) {
        br.close();
    }
} catch (IOException e) {
    pw.println("关闭 BufferedReader 时发生错误:" + e.getMessage());
}
if (pw != null) {
    pw.close();
}

  • 确保在程序结束时关闭 BufferedReader 和 PrintWriter,释放资源。

通过上述示例,你可以看到 BufferedReader 和 PrintWriter 的基本用法,它们在处理大量输入输出时可以提高程序的性能。

分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值