java快速输入输出

Java I/O 类详解:Scanner、BufferedReader、StringTokenizer、PrintWriter、StreamTokenizer

在 Java 中处理输入输出时,不同类适用于不同场景。以下是核心类的功能解析及组合使用建议:


1. ​Scanner

功能:基于正则表达式的文本扫描器,支持逐行读取和类型解析。
特点

  • 简单易用,支持混合输入(数字、字符串等)。
  • 性能较低,适合小规模数据(<10^5次输入)。
    适用场景
  • 初学者练习或小规模数据输入。
  • 需要灵活解析混合类型数据的场景。
    示例
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String s = sc.next();

2. ​BufferedReader

功能:缓冲字符输入流,支持按行读取。
特点

  • 高效读取大文本(>10^5次输入),性能比 Scanner 快 3-5 倍
  • 需手动解析数据(如 split() 或 StringTokenizer
    适用场景
  • 大规模数据输入(如算法竞赛)。
  • 需要按行处理文本的场景。
    示例
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();

3. ​StringTokenizer

功能:将字符串拆分为标记(tokens)。
特点

  • 高效解析空格分隔的字符串,性能优于 split()
  • 需配合 BufferedReader 使用。
    适用场景
  • 需要快速拆分字符串的场景(如数值输入)。
  • 替代 split() 处理简单分隔符。
    示例
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());

4. ​PrintWriter

功能:格式化输出到字符流,支持自动刷新。
特点

  • 高效写入格式化内容(如数学公式、表格)。
  • 需配合 BufferedWriter 提升性能
    适用场景
  • 大量输出(>10^5次写入)。
  • 需要格式化输出(如保留小数点后两位)。
    示例
PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
pw.printf("Sum: %.2f\n", total);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值