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 ...
随机推荐
- Generalized end-to-end loss for speaker verification
论文题目:2018_说话人验证的广义端到端损失 论文代码:https://google.github.io/speaker-id/publications/GE2E/ 地址:https://www.c ...
- 13-Servlet&Request
今日内容: 1. Servlet 2. Request Servlet 1. 概念 2. 步骤 3. 执行原理 4. 生命周期 5. Servlet3.0注解配置 6. Servlet的体系结构 se ...
- pytorch --Rnn语言模型(LSTM,BiLSTM) -- 《Recurrent neural network based language model》
论文通过实现RNN来完成了文本分类. 论文地址:88888888 模型结构图: 原理自行参考论文,code and comment: # -*- coding: utf-8 -*- # @time : ...
- LwIP的udp学习笔记
* Bind an UDP PCB. * * @param pcb UDP PCB to be bound with a local address ipaddr and port. * @param ...
- 基于 H5 Canvas 实现楼宇新风系统
前言 现如今,新型冠状病毒疫情牵动着每一个人的神经,每天起床后的第一件事就是打开疫情地图,看看最新的疫情数据. (http://www.hightopo.com/demo/coronavirus/) ...
- xcode 11.3 发布ipa采坑记录
为了适配ios13,特意更新了xcode11.3 .更新完后发现 application loader没有了,然后蒙了. 然后网上一顿搜索,归纳出了三种上传方式: 一.altool 使用xcode中的 ...
- npm ERR! Failed at the node-sass@4.13.0 postinstall script
node-sass 的数据源没设置 npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sass 重新 npm in ...
- 小白的linux笔记4:几种共享文件方式的速度测试——SFTP(SSH)/FTP/SMB
测试一下各个协议的速度,用一个7205M的centos的ISO文件上传下载.5Gwifi连接时,本地SSD(Y7000)对服务器的HDD: smb download 23M/s(资源管理器) smb ...
- 【python基础语法】第5天作业练习题
import random """ 1.一家商场在降价促销.如果购买金额50-100元(包含50元和100元)之间,会给10%的折扣(打九折), 如果购买金额大于100元 ...
- jdk1.7、jdk1.8兼容共存环境配置方案
前提:环境变量配置 JAVA_HOME=%JAVA_HOME8% JAVA_HOME8=E:\jdk1.8.0_40 JAVA_HOME7=E:\jdk1.7.0_51 path 一.jdk是绿色免安 ...



