Java常用API 之 java.io.BufferedReader(附解析和示例)_11

Java IO之:BufferedReader 2、public String readLine() throws IOException 一次性从缓冲区中将内容全部读取进来。1、public BufferedReader(Reader in) 构造方法 接收一个Reader类的实例。Buffer:表示缓冲区的。StringBuffer,缓冲区中的内容可以更改,可以提高效率。现在要求接收的是一个字符流,需要将字节流转为字符流才可以。 阅读详情

2 

public class BufferedReader
extends Reader

    java.io.BufferedReader类继承自java.io.Reader类。

    BufferedReader从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。可以指定缓冲区的大小,或者使用默认的大小,大多数情况下,默认值就足够大了。

    通常,Reader 所作的每个读取请求都会导致对底层字符或字节流进行相应的读取请求。因此,建议用 BufferedReader 包装所有其 read( ) 操作可能开销很高的 Reader(如 FileReader 和 InputStreamReader)。例如,
BufferedReader in
   = new BufferedReader(new FileReader("foo.in"));
BufferedReader in  
   = new BufferedReader(new InputStreamReader(System.in));  

     如果没有缓冲,则每次调用 read( ) 或 readLine() 都会导致从文件中读取字节,并将其转换为字符后返回,而这是极其低效的。通过用合适的 BufferedReader 替代每个 DataInputStream,可以对将 DataInputStream 用于文字输入的程序进行本地化。

构造函数
BufferedReader(Reader in)     创建一个使用默认大小输入缓冲区的缓冲字符输入流。
BufferedReader(Reader in, int sz) 创建一个使用指定大小输入缓冲区的缓冲字符输入流。
对象方法(前两个在父类是抽象方法)
void close( ) 关闭该流并释放与之关联的所有资源。
 int read(char[ ] cbuf, int off, int len) 

将字符读入数组的某一部分。

它将通过重复地调用底层流的 read 方法,尝试读取尽可能多的字符。这种迭代的 read 会一直继续下去,直到满足以下条件之一:
    已经读取了指定的字符数,
    底层流的 read 方法返回 -1,指示文件末尾(end-of-file)
    底层流的 ready 方法返回 false,指示将阻塞后续的输入请求。
如果第一次对底层流调用 read 返回 -1(指示文件末尾),则此方法返回 -1。否则此方法返回实际读取的字符数。鼓励(但不是必须)此类的各个子类以相同的方式尝试读取尽可能多的字符。

int read( ) 读取单个字符。
String readLine( )  读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行。
void mark(int readAheadLimit) 

标记流中的当前位置。

readAheadLimit - 在仍保留该标记的情况下,对可读取字符数量的限制。在读取达到或超过此限制的字符后,尝试重置流可能会失败。限制值大于输入缓冲区的大小将导致分配一个新缓冲区,其大小不小于该限制值。因此应该小心使用较大的值。

boolean markSupported( )  判断此流是否支持 mark() 操作(它一定支持)。
boolean ready( ) 判断此流是否已准备好被读取。
 void reset( ) 将流重置到最新的标记。如果从未标记过该流,抛异常。
long skip(long n) 跳过n个字符。

mark就像书签一样,在这个BufferedReader对应的buffer里作个标记,以后再调用reset时就可以再回到这个mark过的地方。mark方法有个参数,通过这个整型参数,你告诉系统,希望在读出这么多个字符之前,这个mark保持有效。读过这么多字符之后,系统可以使mark不再有效,而你不能觉得奇怪或怪罪它。这跟buffer有关,如果你需要很长的距离,那么系统就必须分配很大的buffer来保持你的mark。   

调用mark(int readlimit)方法后读取多少字节标记才失效,是取readlimit和BufferedReader类的缓冲区大小两者中的最大值,而并非完全由readlimit确定。

 

java必知必会-java IO 本文主要介绍了javaio的使用 阅读详情

相关推荐

kotlin中的文件和IO流

下面是辛苦给大家整理的学习路线《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)下面是辛苦给大家整理的学习路线[外链图片转存中…(img-bl2iE3l5-1711864742840)]《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

2301_76278775的博客 1080

Java IO 学习总结(四)BufferedReader 缓冲字符流

学习IO流,记录并分享。文章如有错误,恳请指正。BufferedRead 是一个缓冲字符输入流,该流可以对 FileRead 进行包装,提供一个缓存数组,一次将数据按照一定规则读取到缓存区中,输入流每次读取文件数据时都需要将数据进行字符编码,而 BufferedRead 的出现,降低了输入流访问数据源的次数,将一定大小的数据一次读取到缓存区并进行字符编码,从而提高 IO 的效率。

uziuzi669的博客 1万+

Java文件与对象处理示例

本文介绍了Java中文件操作、对象序列化、字符编码读写、CSV解析及多线程共享数据的实现方法,涵盖java.io常用类和实际编程场景,适用于文件处理与数据交互应用开发。

qsc901234567的博客 979

java常用api_Java常用API

常用Java API一、 java.io.BufferedReader类(用于从文件中读入一段字符;所属套件:java.io)1、 构造函数BufferedReader(java.io.FileReader FileReader变量) 说明:新建一个BufferReader对象。2、 close方法 void close() 说明:关闭BufferReader对象。3、 readLine方法 ja...

weixin_36139240的博客 361

Java面试题-IO

在Java中,IO(输入/输出)是指用于处理数据(如读取或写入)的操作,通常涉及数据在内存与其他媒介(如硬盘、网络等)之间的传输。Java lO提供了丰富的API来支持文件操作、网络操作等,它主要包括字节流(用于处理原始二进制数据)和字符流(用于处理文本数据),以及基于它们的各种高级流(如缓冲流、转换流等)以实现数据的高效读写。BIO(Blocking I/O,阻塞输入输出)是一种同步且阻塞的I/O模型,其中线程发起I/O操作(如读取或写入数据)时会被阻塞,直到操作完成。

Roc的博客 706

西瓜书第二章——模型评估与选择(十折交叉验证/查准查全F1)

第二章——模型评估与选择

xsddys的博客 953

Java的BufferedReader

是 Java 中的一个类,用于从字符输入流中读取文本,缓冲字符以提供字符、数组和行的高效读取。它属于java.io包。使用可以提高读取大量数据的性能,因为每次读取可以获得多个字符,而不是每次读取一个字符。

weixin_63490470的博客 4886

保姆级教程:STK 11.0 从下载到安装成功(附Matlab互联配置与常见问题解决)

本文提供STK 11.0的完整安装指南,包括下载、安装步骤、Matlab互联配置及常见问题解决方案。详细介绍了系统要求核查、分步安装流程、关键文件替换和许可证配置,确保用户能够顺利完成STK 11.0的部署并实现与Matlab的无缝对接。

weixin_30698297的博客 345

Java IO操作——BufferedReader

System.in本身表示的是InputStream(字节流),现在要求接收的是一个字符流,需要将字节流转为字符流才可以,InputStreamReader。之前的StringBuffer,缓冲区中的内容可以更改,可以提高效率。BufferedReader是从缓冲区之中读取内容,所有的输入的字节数据都将放在缓冲区之中。如果想接收任意长度的数据,而且避免乱码的产生,就可以使用BufferedReader。Java IO操作——BufferedReader(缓冲区读取内容,避免中文乱码)

Artisan_w 1430

PyRoki 入门教程(二)安装与使用

PyRoki是一个用于机器人运动学优化的Python库,具有模块化设计、可扩展性和跨平台支持等特点。它支持逆运动学、轨迹优化和动作重定位等任务,采用Levenberg-Marquardt优化器提高效率。主要功能包括:基于URDF的可微分正向运动学模型、自动生成碰撞基元、通用成本因子和自定义成本函数等。PyRoki支持CPU、GPU和TPU运行,适用于从单机器人到大规模并行处理场景。目前存在一些限制,如仅支持软约束、静态形状和特定关节类型等。官方提供了多个应用示例,包括基础逆运动学、碰撞检测、轨迹优化和手部/

机器人控制与仿真应用 1252

[SVA]SystemVerilog Assertion Property开发技巧总结

SystemVerilog Assertion开发技巧总结 一、在property中可以使用if-else条件语句 如下面的例子,根据misc_phy_12g_rx的取值,选择不同的判断语句 property ck1_en_rose_chk(); @(posedge clk) disable iff(~rst_n) ad_pn_ck1en & (current_state !== ST_IDLE) |->...

元直的博客 5924

java常用api作用总结_【Java基础】java常用api总结

Java常用API总结1):java.io.BufferedReader类(用于从文件中读入一段字符;所属套件:java.io)1、构造函数BufferedReader(java.io.FileReaderFileReader变量)说明:新建一个BufferReader对象。2、close方法voidclose()说明:关闭BufferReader对象。3、readLine方法j...

weixin_42365688的博客 352

【WorkBuddy专栏51】Codex与WorkBuddy的底层基因——两条完全不同的AI智能体路线(上)

【WorkBuddy专栏51】Codex与WorkBuddy的底层基因——两条完全不同的AI智能体路线(上)

AI人人懂 2174

java statement api_常用Java API(转)

一、 java.io.BufferedReader类(用于从文件中读入一段字符;所属套件:java.io)1、 构造函数BufferedReader(java.io.FileReader FileReader变量) 说明:新建一个BufferReader对象。2、 close方法 void close() 说明:关闭BufferReader对象。3、 readLine方法 java.lang.st...

weixin_29304713的博客 108

详解AUTOSAR:AUTOSAR架构中的配置文件(拓展篇—7)

查看AUTOSAR代码包时会发现一些这样格式的文件:xxx_PBcfg.c、xxx_Lcfg.c和xxx_Cfg.h,本篇博文讲一讲这几个配置文件的作用和特点。

不脱发的程序猿 2147

YOLOv8改进 | 细节涨点篇 | DySample一种超级轻量的动态上采样算子(效果完爆CARAFE)

本文给大家带来的改进机制是一种号称超轻量级且有效的动态上采样器——DySample。与传统的基于内核的动态上采样器相比,DySample采用了一种基于点采样的方法,相比于以前的基于内核的动态上采样器,DySample具有更少的参数、浮点运算次数、GPU内存和延迟。此外,DySample在包括语义分割、目标检测、实例分割、全景分割和单目深度估计在内的五个预测任务中,性能均优于其他上采样器(截至目前最有效的上采样算子)。

Snu77的博客 1万+

Java——文件和IO流

Java——文件和IO流 文件操作 概念 File是数据源(保存数据的地方)的一种,可以表示一个文件,也可以表示一个文件目录。 File类只能对文件和文件夹进行创建和删除等操作,可以查看文件和文件夹的属性,不能读取或修改内容。如果需要读取或修改文件的内容,需要使用IO流。 常常将File类的对象作为参数传递到IO流的类的构造器中。 绝对路径和相对路径 绝对路径:绝对路径名是完整的路径...

weixin_30359021的博客 130

流媒体之LL-HLS 低延时HLS协议

LL-HLS协议通过扩展了HLS协议,为实时直播场景提供了更丰富的功能,如延迟控制、播放列表增量更新、阻止播放列表重新加载等。同时客户端可以更灵活地控制播放列表的加载和播放,以适应各种场景和需求。LL-HLS在直播中的延时可以控制在3s内, 但是即使这样, 还是不如RTMP, RTSP等协议的实时性。

技术控的笔记 3366

Java中的流(4)InputStream,InputStreamReader,BufferedReader关系

InputStream是字节流,InputStreamReader将字节流转成字符流,BufferedReader将字符流转成字符缓冲,开始读字符. 1.InputStream、OutputStream 处理字节流的抽象类 InputStream 是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等. OutputStream是字节输出流的所...

banyinlve3147的博客 131

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Java 常用 API 完全指南

Java 作为一门成熟的编程语言,其强大的生态系统很大程度上得益于它丰富的标准类库(Java Standard Library)。这些 API(Application Programming Interface)覆盖了从基础语言操作到复杂数据结构、文件处理、网络编程等方方面面。掌握这些核心 API,是成为一名合格 Java 开发者的必经之路。

橘子味阳光的博客 249

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

java BufferedReader与BufferedWrite

Java 中的 BufferedReader 与 BufferedWriter 在 Java 中,I/O(输入/输出)操作是程序设计中一个不可或缺的部分。为了提升 I/O 操作的效率,Java 提供了一些高级的输入输出流,其中 BufferedReader 和 BufferedWriter 是两个常用的类。它们的主要作用是...

weixin_35592186的博客 149

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

5:IO Stream-Java API 实战

5:IO Stream-Java API 实战

Yeats_Liao的博客 1379

java resultset api_常用Java API

1 常用Java API23 一、 java.io.BufferedReader类(用于从文件中读入一段字符;所属套件:java.io)45 1、 构造函数BufferedReader(java.io.FileReader FileReader变量) 说明:新建一个BufferReader对象。67 2、 close方法 voidclose() 说明:关闭BufferReader对象。89 3、 ...

weixin_33001561的博客 310

Java File类与IO流

一、File类 1 概述 File类在包java.io.File下,代表操作系统的文件对象(文件、文件夹) File类提供了:定位文件、获取文件本身的信息、删除文件、创建文件(文件夹)等功能 2 构造器 File对象可以定位文件和文件夹 File封装的对象仅仅时一个路径名,这个路径可以存在也可以不存在 3 绝对路径和相对路径 绝对路径:从盘符开始 File file1 = new File(“D:\\Dairy\\a.txt”); 相对路径:不带盘符,默认直接到当前工程下的目录寻找.

weixin_66813230的博客 761

java从文件中读取数据的几种方法(Java io基础)

Scanner(Java 1.5) 按行读数据及String、Int类型等按分隔符读数据。 Files.lines, 返回Stream(Java 8) 流式数据处理,按行读取 Files.readAllLines, 返回List(Java 8) Files.readString, 读取String(Java 11), 文件最大 2G. Files.readAllBytes, 读取byte[](Java 7), 文件最大 2G. BufferedReader, 经典方式 (Java 1.1 -> f.

tianynnb的博客 4万+
上一篇: Java常用API 之 java.io.InputStreamReader(附解析和示例)_10
下一篇: 常见算法之排序(进阶部分)_快速排序_03
coder__666
博客等级 码龄9年 42粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值