BufferedReader的读取效率问题举例分析
发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,这篇文章主要讲解了"BufferedReader的读取效率问题举例分析",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"BufferedReader的读取
千家信息网最后更新 2025年01月25日BufferedReader的读取效率问题举例分析
这篇文章主要讲解了"BufferedReader的读取效率问题举例分析",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"BufferedReader的读取效率问题举例分析"吧!
BufferedReader的读取效率
1. 一般情况
正常采用readline读取,一行行读取。
readline要注意阻塞的情况,当一行没有"/r"、"/n"、"/r/n"就会阻塞在那。
InputStreamReader isr = new InputStreamReader(connection.getInputStream(), "UTF-8"); in = new BufferedReader(isr); String line; while ((line = in.readLine()) != null) { result += line; }
2. 采用read+CharBuffer
inputStream = connection.getInputStream(); isr = new InputStreamReader(inputStream, "UTF-8"); in = new BufferedReader(isr); CharBuffer bos = CharBuffer.allocate(20480); StringBuilder builder = new StringBuilder(); while (in.read(bos) != -1) { bos.flip(); builder.append(bos.toString()); }
注:bos.flip()作用是将指针指向缓冲区的开头
经过一千条数据的读取,发现采用read+CharBuffer的效率要比readline来的高效的多!!!!
补充:
后续实验中发现,其实并不是read方法和CharBuffer高效。其实是String对象频繁的创建导致效率低下,使用CharBuffer和StringBuilder解决了这一问题。
OJ系统里用BufferedReader提高效率
在OJ系统中做编程题时,如果从System.in读入的数据非常大的时候,使用Scanner非常影响效率,可能导致最终代码超时,所以最好改用BufferedReader来读取字符数据。
例如:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[]args) { BufferedReader buf=null; buf=new BufferedReader(new InputStreamReader(System.in)); String str=null; try { int a= Integer.parseInt(buf.readLine()); double b=Double.parseDouble(buf.readLine()); } catch (IOException e) { e.printStackTrace(); } System.out.println(); }}
感谢各位的阅读,以上就是"BufferedReader的读取效率问题举例分析"的内容了,经过本文的学习后,相信大家对BufferedReader的读取效率问题举例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
效率
问题
分析
情况
数据
学习
一行
内容
系统
UTF-8
阻塞
低下
频繁
代码
作用
字符
对象
就是
开头
思路
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全教育手抄报卡通
股票炒股软件开发公司吗
面对小学生的网络安全宣传
全国总工会网络安全资格证书
服务器不读盘怎么办
sip服务器开发
计算机网络技术的成熟应用
全网公敌hello world入侵服务器
遵义知名软件开发公司
可以连接数据库的excel软件
万维全oracle数据库
网络安全重要性的论文标题
大航海家4 数据库
钉钉软件开发疫情挣钱了吗
新希望六和软件开发
粤省事软件开发
苹果贵州服务器虚拟主机
网络安全宣传微信
吉林忠友网络技术
网络安全工程师ospf
网络安全与云计算的区别
网络技术发展 ppt
程序开发和软件开发
服务器维护考试
数据库修改表的前两个字段
数据库运用说明书
宝山区媒体数据库服务商销售
方舟在服务器里买镰刀龙多少钱
粤省事软件开发
平谷区先进软件开发价目表