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 ...
随机推荐
- Uncaught Error: Call to undefined function mcrypt_get_iv_size() 解决办法
函数 mcrypt_get_iv_size 在只在(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0) 这几个版本 ...
- 编译安装php依赖软件libiconv-1.14报错及其解决办法
make && make install报如下错误: ./stdio.h:1010:1: 错误:‘gets’未声明(不在函数内) _GL_WARN_ON_USE (gets, &quo ...
- pymongo(看后转载,在原基础上添加了类连接和简单调用)
一.MongoDB 数据库操作 1. 连接数据库 import pymongo conn = pymongo.Connection() # 连接本机数据库 # conn = pymongo.Conne ...
- Java基于过滤器进行重定向不成功问题的兩種解決辦法,以及基於JSF的ajax重定向解決辦法
我创建了一个过滤器,只要用户没有登陆就不能连接到主界面,但是在doFilter方法中用重定向在前端跳转页面不成功. 原因:由于我的登陆界面是基于ajax请求的,而ajax默认不支持重定向,他只能局部更 ...
- 计算机网络 From Mr.Liu
引言 本博客摘自Mr.Liu,原帖请点击这里. 感谢Mr.Liu,这个文章很充分的描述了计算机网络的核心知识点. 我还在学习中,所以没有进行自己的转述.图片因为是copy代码而没有获得,想看更详尽的, ...
- vue中子组件触发父组件的方法
网上找了几种方法,下面这两种最实用,最明了 方法一:父组件方法返回是字符串或数组时用这种方法 子组件: <template> <button @click="submit& ...
- C#后台异步消息队列实现
简介 基于生产者消费者模式,我们可以开发出线程安全的异步消息队列. 知识储备 什么是生产者消费者模式? 为了方便理解,我们暂时将它理解为垃圾的产生到结束的过程. 简单来说,多住户产生垃圾(生产者)将垃 ...
- IoU-aware Single-stage Object Detector for Accurate Localization
网络的结构如下: 采用FPN结构,Backbone是RetinalNet,分成了P3~P7共5个Layer,分别训练不同尺寸的Box.每个Layer对应的Head有2个分支,包括一个单独的分支用来预测 ...
- 【python基础语法】OS模块处理文件绝对路径,内置的异常类型、捕获、处理(第9天课堂笔记)
import os """ 通过文件的路径去打开文件 相对路径:相对当前的工作路径去定位文件位置 .:代表当前路径 ..:代表上一级路径(父级路径) 绝对路径:相对于电脑 ...
- hive内置方法一览
引用 https://www.cnblogs.com/qingyunzong/p/8744593.html#_label0 官方文档 https://cwiki.apache.org/confluen ...



