IO流学习之字符流(三)
IO流之字符流缓冲区:
概念:
流中的缓冲区:是先把程序需要操作的数据保存在内存中,然后我们的程序读写数据的时候,不直接和持久设备之间交互,而改成和内存中的数据进行交互。
缓冲区:它就是临时存储数据,当我们需要操作数据的时候,直接不是面对的是真实保存数据的终端,而是已经把数据缓存起来的那个容器。
字符流缓冲区:是为了高效而设计的。内部维护了一个数组,真正的读写依赖的普通的字符流。
1、BufferedReader类:

常用方法:

字符流缓冲区输入数据步骤:
- 指定文件位置
- 创建字符流输入对象
- 创建缓存区对象
- 调用方法进行读取数据
- 关闭资源
代码案例:
代码:
package InputOutput; import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException; public class BufferedReaderDemo {
public static void main(String[] args) throws IOException {
// 指定文件路径
String path = "E:\\JavaCodeDemo\\InputOutput\\filewriter\\BufferedReader.txt";
// 创建字符输入流
FileReader reader = new FileReader(path);
// 创建字符输入流缓冲区
BufferedReader rb = new BufferedReader(reader);
String flag = null;
// readLine一行一行读取文件
while ((flag = rb.readLine()) != null) {
System.out.println(flag);
}
rb.close();
// 流程成功输出Success
System.out.println("Success");
}
}
重要方法:ReadLine()

2、BufferedWriter类

常用方法:

代码案例:
代码:
package InputOutput; import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException; public class BufferedWriterDemo {
public static void main(String[] args) throws IOException {
// 指定文件位置
String path = "E:\\JavaCodeDemo\\InputOutput\\filewriter\\BufferedWriter.txt";
// 创建字符输出流
FileWriter writer = new FileWriter(path);
// 创建字符输出流缓冲区
BufferedWriter bw = new BufferedWriter(writer);
// 写入
for (int i = 0; i < 4; i++) {
bw.write("test :" + i);
//newLine()实现换行
bw.newLine();
}
//关闭资源
bw.flush();
bw.close();
// 流程成功输出Success
System.out.println("Success");
}
}
3、字符流缓冲区实现文档复制:
代码案例:
package InputOutput; import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException; //字符输入流和输出流缓冲区实现复制文件
public class BufferReaderWriter {
public static void main(String[] args) throws IOException {
// 指定输入流文件位置
String path1 = "E:\\JavaCodeDemo\\InputOutput\\filewriter\\BufferedReaderCopy.txt";
// 指定输出流文件位置
String path2 = "E:\\JavaCodeDemo\\InputOutput\\filewriter\\BufferedWriterCopy.txt";
// 创建字符输入流
FileReader reader = new FileReader(path1);
// 创建字符输出流
FileWriter writer = new FileWriter(path2);
// 想追加写入就加上true
// FileWriter writer = new FileWriter(path2,true);
// 创建输入缓冲区
BufferedReader br = new BufferedReader(reader);
// 创建输出缓冲区
BufferedWriter bw = new BufferedWriter(writer);
String flag = null;
while ((flag = br.readLine()) != null) {
bw.write(flag);
bw.newLine();
bw.flush();
}
// 关闭资源
bw.close();
br.close();
// 流程成功输出Success
System.out.println("Success");
}
}
注意:因为缓冲区的Close方法会自动调用字符流的Close方法,因此最后关闭资源只需要关闭缓冲区的Close()方法即可!
IO流学习之字符流(三)的更多相关文章
- IO流学习之字符流(二)
用字符流完成文档的复制: 测试文档: 代码1: package InputOutput; import java.io.FileReader; import java.io.FileWriter; i ...
- IO流学习之字符流(一)
IO流(Input/Output) 简介: 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数 ...
- java IO之字节流和字符流-Reader和Writer以及实现文件复制拷贝
接上一篇的字节流,以下主要介绍字符流.字符流和字节流的差别以及文件复制拷贝.在程序中一个字符等于两个字节.而一个汉字占俩个字节(一般有限面试会问:一个char是否能存下一个汉字,答案当然是能了,一个c ...
- Java IO 转换流 字节转字符流
Java IO 转换流 字节转字符流 @author ixenos 字节流 输入字节流:---------| InputStream 所有输入字节流的基类. 抽象类.------------| Fil ...
- Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律
第一讲 IO概述 概述 1.IO流:即InputOutput的缩写. 2.特点: 1)IO流用来处理设备间的数据传输. 2)Java对数据的操作是通过流的方式. 3)Java用于操作流的对象都 ...
- java IO的字节流和字符流及其区别
1. 字节流和字符流的概念 1.1 字节流继承于InputStream OutputStream, 1.2 字符流继承于InputStreamReader OutputStre ...
- IO(二)----字符流
计算机并不区分二进制文件与文本文件.所有的文件都是以二进制形式来存储的,因此,从本质上说,所有的文件都是二进制文件.所以字符流是建立在字节流之上的,它能够提供字符层次的编码和解码. 常见的码表 ASC ...
- javaio学习笔记-字符流类(1)
1.java.io包中的字符流类-BufferedReader和BufferedWriter: BufferedReader:缓存的输入字符流; BufferedWriter:缓存的输出字符流; In ...
- javaio学习笔记-字符流类(2)
1.java.io包中的字符流类-FileReader和FileWriter: BufferedReader:缓存的输入字符流; BufferedWriter:缓存的输出字符流; FileReader ...
随机推荐
- Nginx总结(八)Nginx服务器的日志管理及配置
前面讲了如何配置Nginx虚拟主机,大家可以去这里看看nginx系列文章:https://www.cnblogs.com/zhangweizhong/category/1529997.html 今天要 ...
- .NET Core之单元测试(二):使用内存数据库处理单元测试中的数据库依赖
目录 定义一个待测试API 测试用例 为减少篇幅,隐藏了SampleEntity和SqliteDbContext 定义一个待测试API 如下,我们定义了一个名为Sample的API,其中有一个外部依赖 ...
- vue 信使 ------fetch、axios
fetch 1.什么是fetch 相当于promise 必须写两个then 第一个then返回状态码 返回成json格式 第二个then返回json数据 2.使用方法 $ npm install fe ...
- H3C router cmd
LAN转WAN:接口下port link-mode route windows CMD,本地连接5的链路本地地址经常有一个百分号加一个数字,该数字即接口索引,fe80::8c79:e4f9:f5a3: ...
- apache主配置文件httpd.conf详解
[root@lamp conf]# vi httpd.conf.bak 1 # 2 # This is the main Apache HTTP server configuration file. ...
- 保留yum安装的软件包
文件路径 /etc/yum.conf [root@opvnserver ~]# grep "keepcache" /etc/yum.conf keepcache=0 [root@o ...
- 小浩算法|一文让你学会如何用代码判断"24"点
“24点”是一种数学游戏,正如象棋.围棋一样是一种人们喜闻乐见的娱乐活动.它始于何年何月已无从考究,但它以自己独具的数学魅力和丰富的内涵正逐渐被越来越多的人们所接受.今天就为大家分享一道关于“24点” ...
- Python学习小记(5)---Magic Method
具体见The Python Language Reference 与Attribute相关的有 __get__ __set__ __getattribute__ __getattr__ __setat ...
- vuex 状态管理 入门
vuex是什么 是一个对 数据状态实现集中式管理 的工具.可以解决组件之间传递的问题 多组件共享状态(变量),有一个数据好多组件都用 组件数大于2,任何一个组件修改其他组件都要改变 实现组件通信 St ...
- Asp.net Core MVC(三)UseMvc设置路由
在家办公,下班继续看点东西,不废话,继续看MVC的路由. asp.net核心mvc的路由是建立在asp.net核心的路由之上的.通过终结点加载路由中间件的配置方式在此不细说了,(DOTNET Core ...



