返回顶部
首页 > 资讯 > 后端开发 > Python >关于BufferedReader的读取效率问题
  • 395
分享到

关于BufferedReader的读取效率问题

2024-04-02 19:04:59 395人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录BufferedReader的读取效率1. 一般情况2. 采用read+CharBufferOJ系统里用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();
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 关于BufferedReader的读取效率问题

本文链接: https://lsjlt.com/news/159531.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 关于BufferedReader的读取效率问题
    目录BufferedReader的读取效率1. 一般情况2. 采用read+CharBufferOJ系统里用BufferedReader提高效率BufferedReader的读取效率...
    99+
    2024-04-02
  • BufferedReader的读取效率问题举例分析
    这篇文章主要讲解了“BufferedReader的读取效率问题举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“BufferedReader的读取效率问题举例分析”吧!BufferedR...
    99+
    2023-06-22
  • 关于BufferedReader读取文件指定字符集问题
    目录BufferedReader读取文件指定字符集问题BufferedReader类读取中文乱码BufferedReader读取文件指定字符集问题 默认的读取方式 Buffere...
    99+
    2024-04-02
  • 关于对async await效率问题的深入思考
    关于async await async await于ES2017标准引入,本身的功能是作为语法糖简化写法的。 下面列举一个使用promise的例子: function myProm...
    99+
    2024-04-02
  • 如何解决BufferedReader读取文件指定字符集问题
    小编给大家分享一下如何解决BufferedReader读取文件指定字符集问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!BufferedReader读取文件指定字符集问题默认的读取方式BufferedReader&nbs...
    99+
    2023-06-22
  • Java中关于文件路径读取问题的分析
    Java读取文件路径 记录一种通用获取文件绝对路径的方法,即使代码换了位置了,这样编写也是通用的: 注意: 使用以下方法的前提是文件必须在类路径下,类路径:凡是在src下的都是类路径...
    99+
    2024-04-02
  • C语言中关于scanf读取缓存区的问题
    目录前言scanf函数的定义功能:执行格式化输入总结解决方法前言 在牛客做了很多坑爹的题,明明代码没问题但是就退无法AC,看了很多题解之后,发现是scanf读取缓存区,在输入输出时出...
    99+
    2024-04-02
  • 关于Python读取文件的路径中斜杠问题
    最近用Python读取文件,发现有时候用 '\' 会报错,换成 '\\' 就不会报错。查了下资料发现,'\'是Python的转义字符,如果路径中存在'\t'或者'\r'这样的特殊字符,'\'就无法起到目录跳转的作用,因此报错。解决办法就是...
    99+
    2023-01-31
    斜杠 路径 文件
  • 关于springBootyml文件的list读取问题总结(亲测)
    目录springBoot yml文件的list读取问题配置如下1.定义配置类2.定义启动的配置类3.使用方式读取yml文件里的list配置YAML 支持以下几种数据类型这里只介绍li...
    99+
    2024-04-02
  • 基于bufferedreader的read()与readline()读取出错怎么解决
    本篇内容主要讲解“基于bufferedreader的read()与readline()读取出错怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于bufferedreader的read()...
    99+
    2023-06-22
  • 关于Filter中获取请求体body后再次读取的问题
    Filter获取请求体body再次读取 工作需要,要将请求和响应做一些处理,写一个filter拦截请求,拦截request中body内容后,字符流关闭,controller取到的请求...
    99+
    2024-04-02
  • 基于bufferedreader的read()与readline()读取出错原因及解决
    目录bufferedreader的read()与readline()读取出错bufferedReader中的readLine()源码解析bufferedreader的read()与r...
    99+
    2024-04-02
  • 关于.net环境下跨进程、高频率读写数据的问题
    目录一、需求背景二、没错,第一节写的太多了三、开始写代码了四、真的要贴代码了五、差点忘记做成DLL了六、因为跨线程、进程,所以要考虑加入互斥量哦一、需求背景 1、最近项目要求高频次地...
    99+
    2024-04-02
  • 关于ConditionalOnMissingBean失效问题的追踪
    目录现场回放services操作类configuration抛出异常问题定位工作原理问题出在哪 解决问题结论遇到一个@ConditionalOnMissingBean失效的...
    99+
    2024-04-02
  • 关于redis可视化工具读取数据乱码问题
    先给大家介绍下redis可视化工具读取数据乱码问题。 更改序列化方式即可解决此问题,具体代码如下 @Configuration public class RedisConfig ...
    99+
    2024-04-02
  • Python中,关于读取文件编码解码的问
    UnicodeDecodeError: 'gbk' codec can't decode byte 0xb1 in position 94: illegal multibyte sequence 有时候用o...
    99+
    2023-01-31
    文件 Python
  • 关于Python列表的索引取值问题
    本篇文章给大家带来了关于Python的相关知识,其中主要介绍了Python 列表的索引取值,本节重点掌握多次索引取值的语法:列表[索引][索引],结合示例代码给大家介绍的非常详细,下面一起来看一下,希望对大家有帮助。php零基础到就业直播视...
    99+
    2024-04-02
  • 关于mybatis-plus逻辑删除无效的问题
    添加如下注解value代表默认值delval代表删除时的值 @TableLogic(value = "0", delval = "1") @TableField...
    99+
    2024-04-02
  • 关于vue3使用particles粒子特效的问题
    目录第一步:引入 particles.js第二步:找到 node_modules 内的 particles.js第三步:项目 components 下创建 particles 目录第...
    99+
    2024-04-02
  • 关于vue3vuex4store的响应式取值问题解决
    场景: 在页面中点击按钮,数量增加,值是存在store中的,点击事件,值没变。 <script setup lang="ts"> import { useStore } ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作