Java I/O 教程(十 一) BufferedWriter和BufferedReader
Java BufferedWriter 类
Java BufferedWriter class 继承了Writer类,为Writer实例提供缓冲。 提升了写字符和字符串性能。
类定义:
public class BufferedWriter extends Writer
构造函数:
BufferedReader(Reader in)
Creates a buffering character-input stream that uses a default-sized input buffer.
|
BufferedReader(Reader in, int sz)
Creates a buffering character-input stream that uses an input buffer of the specified size.
|
方法:
void newLine() 添加新行
void write(int c) 写单个字符
void write(char[] cbuf, int off, int len) 写部分字符数组
void write(String s, int off, int len) 写部分字符串
void flush() 冲刷输入流
void close() 关闭输入流
例子
package com.dylan.io;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
/**
* @author xusucheng
* @create 2018-01-13
**/
public class BufferedWriterDemo {
public static void main(String[] args) throws IOException{
Writer w = new FileWriter("D:\\testout.txt");
BufferedWriter bw = new BufferedWriter(w);
bw.write("我是中国人");
bw.newLine();
bw.write("我此生无悔入华夏!");
bw.flush();
bw.close();
System.out.println("写入成功!");
}
}
Java BufferedReader 类
Java BufferedReader class继承了Reader类。
用于从字符输入流读取文本,通过缓冲字符方式能给字符,数组和行级别读取带来不错性能提升。
缓冲区大小可以自定义,或者使用默认大小。默认大小足以应对绝大多数情况。
类定义
public class BufferedReader extends Reader
Java BufferedReader class constructors
构造函数
BufferedReader(Reader in)
Creates a buffering character-input stream that uses a default-sized input buffer.
|
BufferedReader(Reader in, int sz)
Creates a buffering character-input stream that uses an input buffer of the specified size.
|
方法
int read() 读取单字符
int read(char[] cbuf, int off, int len) 读取字符放到数组中
boolean markSupported() 告诉你这个流是否支持mark操作
String readLine() 读取一行文本
boolean ready() 测试输入流是否准备好被读取
long skip(long n) 跳过字符
void reset() 重置流到最近的标记
void mark(int readAheadLimit) 标记当前流位置
void close() 关闭流,是否与其相关的资源
例子1
package com.dylan.io;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
/**
* @author xusucheng
* @create 2018-01-13
**/
public class BufferedReaderDemo {
public static void main(String[] args) throws IOException {
Reader r = new FileReader("D:\\testout.txt");
BufferedReader br = new BufferedReader(r);
if (br.ready()) {
String content = null;
while ((content = br.readLine()) != null) {
System.out.println(content);
}
}
br.close();
}
}
例子2
package com.dylan.io;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
/**
* 读取控制台输入流
* @author xusucheng
* @create 2018-01-13
**/
public class BufferedReaderConsoleDemo {
public static void main(String[] args) throws IOException{
Reader r = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(r);
System.out.println("请输入您的姓名:");
String name = br.readLine();
if(!(name==null || "".equals(name))){
System.out.println("欢迎"+name+"!");
}
br.close();
}
}
Java I/O 教程(十 一) BufferedWriter和BufferedReader的更多相关文章
- java中的缓冲流BufferedWriter和BufferedReader
java中的缓冲流有BufferedWriter和BufferedReader 在java api 手册中这样说缓冲流: 从字符输入流中读取文本,缓冲各个字符,从而实现字符.数组和行的高效读取.可以指 ...
- JAVA之旅(二十五)——文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine
JAVA之旅(二十五)--文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine 我们继续IO上个篇 ...
- Java NIO系列教程(十)DatagramChannel
Java NIO系列教程(十)DatagramChannel 转载自并发编程网 – ifeve.com,本文链接地址: Java NIO系列教程(十) Java NIO DatagramChannel
- Java NIO系列教程(三-十二) Buffer
原文链接 作者:Jakob Jenkov 译者:airu 校对:丁一 Java NIO中的Buffer用于和NIO通道进行交互.如你所知,数据是从通道读入缓冲区,从缓冲区写入到 ...
- [转] java书籍(给Java程序猿们推荐一些值得一看的好书 + 7本免费的Java电子书和教程 )
7本免费的Java电子书和教程 1. Thinking in Java (Third Edition) 本书的作者是Bruce Eckel,它一直都是Java最畅销的免费电子书.这本书可以帮助你系统的 ...
- 201521123061 《Java程序设计》第十二周学习总结
201521123061 <Java程序设计>第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对 ...
- 201521123072《java程序设计》第十二周学习总结
201521123072<java程序设计>第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象 ...
- 201521123072《java程序设计》第十周学习总结
201521123072<java程序设计>第十周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异 ...
- 201521123038 《Java程序设计》 第十二周学习总结
201521123038 <Java程序设计> 第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student ...
- 201521123122 《java程序设计》第十二周学习总结
## 201521123122 <java程序设计>第十二周实验总结 ## 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将St ...
随机推荐
- mongo-基本操作
mogo基本操作 mongo对命令大小写敏感,SQL对大小写不敏感 存放 json数据,一条json数据是一个文档 数据库 查看数据库 show databases 切换数据库 use db db 不 ...
- [转帖]高性能分布式对象存储——MinIO实战操作(MinIO扩容)
https://juejin.cn/post/7132852449244610574 一.前言 MinIO的基础概念和环境部署可以参考我之前的文章:高性能分布式对象存储--MinIO(环境部署) 二. ...
- [转帖]从理论到实践,异步I/O模式下NVMe SSD高性能之道
在早期NVMe的讨论话题中,常常将之AHCI协议进行对比,在支持的最大队列深度.并发进程数以及消耗时钟周期数等方面,NVMe吊打了AHCI.最直观也最权威的就是下面这张对比图片. NVMe与AHCI协 ...
- 【转帖】26.Java本地方法的理解(native方法)
目录 1.什么是本地方法? 2. 为什么要使用Native method? 1.什么是本地方法? 本地方法就是java代码里面写的native方法,它没有方法体.是为了调用C/C++代码而写的.在JN ...
- [转帖]Redis 使用指南:深度解析 info 命令
https://www.cnblogs.com/hwpaas/p/9442410.html Redis 是一个使用 ANSI C 编写的开源.基于内存.可选持久性的键值对存储数据库,被广泛应用于大型 ...
- TCP内核参数与Nginx配置的简单测试
背景 昨天晚上整理了下几个TCP内核的参数. 学习到了一点内核参数的影响. 但是因为时间比较晚了没有继续钻研与nginx的关系 今天想着继续研究一下TCP的部分参数与nginx的关系 每个系统都不一样 ...
- 升级到win11 22h2的体验
win11 22h2更稳定了 在win11 22h2发布后没多久,我就升级到了这个版本,截止目前已经使用半个月了,谈谈我的使用感受. 总体要比之前的版本更稳定,表现为笔记本风扇不会突然响,突然卡顿,不 ...
- go中的类型转换成interface之后如何复原
go中interface转换成原来的类型 首先了解下interface 什么是interface? 如何判断interface变量存储的是哪种类型 fmt 反射 断言 来看下interface的底层源 ...
- 强化学习从基础到进阶-案例与实践[5.1]:Policy Gradient策略梯度-Cart pole游戏展示
强化学习从基础到进阶-案例与实践[5.1]:Policy Gradient策略梯度-Cart pole游戏展示 强化学习(Reinforcement learning,简称RL)是机器学习中的一个领域 ...
- 使用 arxiv-sanity &paperwithcode 跟进最新研究领域的文章
1.arxiv-sanity介绍 arxiv.org是一个非常大的预印本资源库,里面有大量的最新的论文,但缺点是浏览.搜索和排序不是很方便.这个资源库每天会更新大量的论文,如果通过手动搜索和浏览则效率 ...