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

java中输入输出的优化

BufferedReader

核心优势
  • 缓冲机制减少 IO 次数,读取效率远高于Scanner
  • readLine()支持按行读取,适配多段输入场景;
  • 可处理控制台输入、文件输入、网络流输入。
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class TestBufferedReader { public static void main(String[] args) throws IOException { // 1. 创建对象 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 2. 读取第一行(比如输入:10) System.out.println("请输入一个整数:"); String line1 = br.readLine(); int n = Integer.parseInt(line1); // 手动转int // 3. 读取第二行(比如输入:1 2 3 4) System.out.println("请输入多个整数(空格分隔):"); String line2 = br.readLine(); // 4. 关闭流 br.close(); // 输出结果 System.out.println("你输入的单个整数:" + n); System.out.println("你输入的整行文本:" + line2); } }

StringTokenizer

核心优势
  • 分割效率高于String.split()(尤其是大数据量场景);
  • 仅分割非空字符(自动忽略连续空格);
  • 支持自定义分隔符(空格、逗号、竖线等)。

StringTokenizer和上面的br.readLine()进行整合

模版使用

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class TestStringTokenizer { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 读取一行带空格的输入:"10 20 30 40" String line = br.readLine(); // 1. 创建分割器(默认按空格分割) StringTokenizer st = new StringTokenizer(line); // 2. 循环获取所有分割后的字符串 System.out.println("分割后的结果:"); while (st.hasMoreTokens()) { String token = st.nextToken(); int num = Integer.parseInt(token); // 转成int System.out.println(num); } br.close(); } }

手写类型转换方法

StringBuidler

核心优势
  • 可变字符序列,拼接效率远高于String +=(避免创建大量临时字符串);
  • 支持指定初始容量,减少扩容次数;
  • 可清空复用,降低对象创建开销。
// 写法1:空对象(常用) StringBuilder sb = new StringBuilder(); // 写法2:指定初始容量(大数据量时优化,避免扩容) StringBuilder sb2 = new StringBuilder(1024 * 10); // 10KB初始容量

核心方法

public class TestStringBuilder { public static void main(String[] args) { // 1. 创建拼接对象 StringBuilder sb = new StringBuilder(); // 2. 循环拼接10行数据(模拟批量输出) for (int i = 1; i <= 10; i++) { sb.append("第").append(i).append("行:").append(i * 2).append("\n"); } // 3. 一次性输出(仅1次System.out调用) System.out.print(sb); // 4. 清空复用 sb.setLength(0); sb.append("清空后拼接的新内容:").append(100); System.out.println(sb); } }

一定要记住快速导包

http://www.jsqmd.com/news/294987/

相关文章:

  • 全网最全研究生必备AI论文工具TOP8测评
  • 利用AI技术自动生成的开题报告模板,让学术写作的第一步更轻松
  • 学术写作的第一步不再复杂,AI工具助你高效完善开题报告模板
  • 借助AI工具的强大功能,轻松生成一份高质量的开题报告模板
  • 这份由AI辅助设计的开题报告模板,能显著提升你的学术写作效率
  • 学术写作的第一步至关重要,AI工具助你优化开题报告模板的结构
  • 小程序基于前后端分离的外卖点餐骑手送餐系统
  • 通过AI智能分析,这份开题报告模板能帮你快速完成学术论文的初稿
  • 微信小程序二手物品交易平台开发
  • 微信小程序的—宠物售卖商店看病预约业务系统
  • 校园跑腿任务接单 微信小程序
  • 游戏攻略分享系统微信小程序
  • 基于微信小程序电影院售票选座管理系统
  • 基于微信小程序的志愿活动报名服务管理系统
  • 多模态大模型核心原理与实战:从Stable Diffusion到Sora全面解析
  • 完整教程:MinIO 国产化替代品Ceph、Garage 、RustFS
  • cpp中atan与atan2的对比
  • 大模型训练全攻略:从并行技术到高效微调,一篇搞定大模型训练核心知识
  • Unity2022安装NewtonsoftJson?
  • 【程序员必看】AI大模型产品经理薪资破90万,完整学习路线与实战案例
  • 从通用到垂类:大模型微调技术详解,PEFT方法全总结(建议收藏)
  • 2026年亚马逊卖家财税合规指南:深圳地区服务机构推荐,深圳信质远企服入选前三
  • 一键打开hosts文件所在目录
  • 巴菲特的企业文化建设:价值观驱动的组织
  • 线上摄影约拍系统小程序
  • 深入理解TCP协议:数据格式与核心机制解析
  • 微服务一致性检查:如何确保服务数据同步
  • PostgreSQL中的数组和JSON处理
  • 网页爬虫与DOM操作:Puppeteer与Cheerio的实战应用
  • 异步编程的陷阱:理解JavaScript中的事件循环