【JAVASE】IO系列 BufferedReader(超详细解析)
2022/2/14 14:11:44
本文主要是介绍【JAVASE】IO系列 BufferedReader(超详细解析),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
????:博客首页: 进击的波吉
????:今日分享的文章:【JAVASE】IO系列 BufferedReader
????:希望自己对IO系列的解析可以帮助到大家????
????:Boji 还在努力学JavaSE ,如有疑问、疏漏之处,请多多指点????
☀️:自学成长的路上,感谢大家相伴!No hurry , No Pause !????
文章目录
- 前提:
- 1.基本介绍:
- 2. BufferedReader 函数列表
- 3.案例演示:
- 3.1 从控制台读取多字符输入
- 3.2 从控制台读取字符串
- 4. BufferedReader源码
前提:
⭐️ 在平时刷题,不清楚大家有没有这样的疑惑,对BufferedReader 有一些熟悉 ,但不知道使用细节及原理,特意写这篇文章帮大家梳理梳理!
1.基本介绍:
Buffered 音译 :缓冲区的 ;
BufferedReader:是缓冲输入流,它继承于Reader ;
BufferedReader:
- 从字符输入流读取文本,缓冲字符,以提供字符,数组和行的高效读取 ;
- 可以指定缓冲区大小,或者使用默认大小,默认值足够大,可用于大所属用途;
通常,我们在做基本Java算法题中,创建 BufferedReader的基本语法:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
语法解析:
- System.in 字节输入流
- new InputStreamReader 将 字节流 转换为 字符流
- new BufferedReader 将字符流放入字符流缓冲区之中
2. BufferedReader 函数列表
BufferedReader(Reader in) BufferedReader(Reader in, int size) void close() void mark(int markLimit) boolean markSupported() int read() int read(char[] buffer, int offset, int length) String readLine() boolean ready() void reset() long skip(long charCount)
主要使用方法:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str= br.readLine() ; char c = br.read() ;
BufferedReader 对象创建后,我们便可以使用 read() 方法从控制台读取一个字符,或者用 readLine() 方法读取一个字符串。
注意:
-
StringBuffer类的readLine()从每次读取的一行内容,直至读取的为null为止。然后进行输出。
-
StringBuffer类的read()方法读取到的每一个数字转化后的字符,然后进行输出。
此处参考:菜鸟教程
3.案例演示:
3.1 从控制台读取多字符输入
从 BufferedReader 对象读取一个字符要使用 read() 方法,它的语法如下:
int read( ) throws IOException
每次调用 read() 方法,它从输入流读取一个字符并把该字符作为整数值返回。 当流结束的时候返回 -1。该方法抛出 IOException。
下面的程序示范了用 read() 方法从控制台不断读取字符直到用户输入 q。
BRRead.java 文件代码:
//使用 BufferedReader 在控制台读取字符 import java.io.*; public class BRRead { public static void main(String[] args) throws IOException { char c; // 使用 System.in 创建 BufferedReader BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("输入字符, 按下 'q' 键退出。"); // 读取字符 do { c = (char) br.read(); System.out.println(c); } while (c != 'q'); } } 以上实例编译运行结果如下: 输入字符, 按下 'q' 键退出。 runoob r u n o o b q q
3.2 从控制台读取字符串
从标准输入读取一个字符串需要使用 BufferedReader 的 readLine() 方法。
它的一般格式是:
String readLine( ) throws IOException
下面的程序读取和显示字符行直到你输入了单词"end"。
BRReadLines.java 文件代码: //使用 BufferedReader 在控制台读取字符 import java.io.*; public class BRReadLines { public static void main(String[] args) throws IOException { // 使用 System.in 创建 BufferedReader BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str; System.out.println("Enter lines of text."); System.out.println("Enter 'end' to quit."); do { str = br.readLine(); System.out.println(str); } while (!str.equals("end")); } } 以上实例编译运行结果如下: Enter lines of text. Enter 'end' to quit. This is line one This is line one This is line two This is line two end end
4. BufferedReader源码
博主写的很棒,源码分析参考这篇文章:
https://www.cnblogs.com/skywang12345/p/io_23.html
这篇关于【JAVASE】IO系列 BufferedReader(超详细解析)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-20测试人员都是画画大神,让我看看谁还不会用代码图?
- 2024-05-20年薪百万的程序员都在用的摸鱼方式……
- 2024-05-19永别了,微服务架构!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了