当前位置: 首页 > news >正文

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 的基本用法,它们在处理大量输入输出时可以提高程序的性能。

分享

相关文章:

  • ctfhub-web信息泄露通关攻略
  • LabVIEW图像识别抗干扰分析
  • STM32学习【4】ARM汇编(够用)
  • 【Java项目】基于Spring Boot的校园闲置物品交易网站
  • IP 地址分配和管理全解析
  • 3 年→ 资深开发速通计划 序言
  • 5.10 P-Tuning v2:多层级提示编码的微调革新
  • pycharm编写ai大模型api调用程序及常见错误
  • [MD] AG stable
  • Autosar_RTE基础概念整理
  • 阿里云 | 快速在网站上增加一个AI助手
  • 【Stable Diffusion】AnimatedDiff--AI动画 插件使用技巧分享;文生视频、图生视频、AI生成视频工具;
  • python文件如何打包成.exe文件
  • 《AI和人工智能和编程日报》
  • nio中ByteBuffer使用
  • 【C】堆的应用 -- 堆排序
  • Unity Shader 学习14:模版测试 与 深度测试
  • Linux文件操作原理
  • 机器学习:强化学习的epsilon贪心算法
  • CodeMeter SmartBind® 软授权智能绑定技术
  • 第十二届警博会在京开幕:12个国家和地区835家企业参展
  • 西北大学副校长范代娣成陕西首富?系家庭财富,本人已从上市公司退出
  • 《广州大典研究》集刊发展座谈会:“广州学”的传承与创新
  • 干部任职公示:陕西宁强、镇安两县县长拟进一步使用
  • 让胖东来“自闭”的玉石生意,究竟水有多深?
  • 深入贯彻中央八项规定精神学习教育中央指导组完成进驻