IO-4(BufferedInputStream、BufferedInputStream、BufferedReader、BufferedWriter)
1.BufferedInputStream
字节缓冲输入流
从文件中读取数据
1.1 读数据步骤
- 创建数据流对象
- 将基本流包装秤高效流
- 读数据
- 关闭流
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;public class Test{public static void main(String[] args) throws IOException {FileInputStream fi=new FileInputStream("a.txt");BufferedInputStream bis=new BufferedInputStream(fi);int ch=-1;while((ch=bis.read())!=-1)System.out.print((char)ch);bis.close();fi.close();}
}
运行结果:(说明可以读取换行)
2.BufferedOutputStream
字节缓冲输出流
写数据到文件
2.1写数据步骤
- 创建流
- 使用高效流进行封装
- 写数据
- 关闭流
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class Test{public static void main(String[] args) throws IOException {FileOutputStream fo=new FileOutputStream("a.txt");BufferedOutputStream bos=new BufferedOutputStream(fo);bos.write("你在吗?".getBytes());bos.close();fo.close();}
}
运行结果:
3.BufferedReader
字符缓冲输入流
所有已实现的接口:
Closeable, Readable
3.1 构造方法
BufferedReader(Reader in):创建一个使用默认大小输入缓冲区的缓冲字符输入流
BufferedReader(Reader in,int size):创建一个使用指定认大小输入缓冲区的缓冲字符输入流
3.2 方法
int read():读取单个字符
int read(char[] chs,int index,int len):将字符读入数组的某一部分
String readLine():读取一个文本行
3.2.1 读取数据方式1:一次一个字符
int ch;
while((ch=in.read())!=-1)System.out.print((char)ch);
in.close();
3.2.2 读取数据方式2:一次一个字符数组
char[] chs=new char[1024];
int len;
while((len=in.read())!=-1)System.out.print(new String(chs,0,len));
in.close();
3.2.3 读取数据方式3:一次一个文本行
String line=null;
while((line=in.readLine())!=null)System.out.println(line);
in.close();
3.3使用步骤
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;public class Test{public static void main(String[] args) throws IOException {BufferedReader in=new BufferedReader(new FileReader("a.txt"));String line=null;while((line=in.readLine())!=null)System.out.println(line);in.close();}
}
运行结果:
4.BufferedWriter
字符缓冲输出流
所有已实现的接口:
Closeable, Flushable, Appendable
4.1构造函数
BufferedWriter(Writer out):创建一个使用默认认大小输出缓冲区的缓冲字符输出流
BufferedWriter(Writer out,int size):创建一个使用指定认大小输出缓冲区的缓冲字符输出流
4.2 方法
void newLine():写入一个行分隔符,依当前系统
void write(int c):写入一个字符
void write(char[] c,int index,int len):写入字符数组的某一部分
void write(String str,int index,int len):写入字符串的某一部分
4.3使用步骤
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;public class Test{public static void main(String[] args) throws IOException {BufferedWriter out=new BufferedWriter(new FileWriter("b.txt"));String line=null;for(int i=0;i<5;i++) {out.write("hello");out.newLine();}out.close();}
}
运行结果:
分析:
BufferedWriter out=new BufferedWriter(new FileWriter("b.txt"));
BufferedWriter将文本写入FileWriter,最终写是由FileWriter来做的。
IO-4(BufferedInputStream、BufferedInputStream、BufferedReader、BufferedWriter)相关推荐
- 【Java基础】Java IO编程:输入输出流、内存流、打印流、缓冲流BufferedReader、扫描流Scanner、序列化与反序列化
文章目录 第11章.Java IO编程 11.1 文件操作类:File 11.2 字节流与字符流 字节输出流:OutputStream OutputStream类 FileOutputStream类 ...
- IO流(常用流都有)
目录 一.流的分类: 二.流的体系结构 三.FileReader和FileWriter 四.FileInputStream和FileOutputStream 五.BufferedInputStrea ...
- Redis基本数据类型、持久化机制、集群模式、淘汰策略、缓存穿透、击穿、雪崩、常见面试题大集合!
redis redis reids的常用数据类型 1.String 2.Hash 3.List 5.Sorted Set(ZSet) 6.其他 发布(pub)订阅模式(sub)模式 作用 Redis的 ...
- 阻塞与非阻塞、同步与异步、I/O模型
1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式: 同步/异步主要针对C端: 同步: 所谓同步,就是在c端 ...
- Chrome源码剖析、上--多线程模型、进程通信、进程模型
Chrome源码剖析.上 原著:duguguiyu. 整理:July. 时间:二零一一年四月二日. 出处:http://blog.csdn.net/v_JULY_v. 说明:此Chrome源码剖析很大 ...
- 【chrome】Chrome源码剖析、上--多线程模型、进程通信、进程模型
Chrome源码剖析.上 原著:duguguiyu. 整理:July. 时间:二零一一年四月二日. 出处:http://blog.csdn.net/v_JULY_v. 说明:此Chrome源码剖析很 ...
- Java的IO操作(五) - PrintStream类、字符流、Reader和Writer、带缓冲的字符流BufferedReader和BufferedWriter...
1. PrintStream类 我们都知道,int类型在Java中占4个字节,如1在内存中表示为 00000000 00000000 00000000 00000001.如果我们直接使用OutputS ...
- Java IO流学习总结四:缓冲流-BufferedReader、BufferedWriter
Java IO流学习总结四:缓冲流-BufferedReader.BufferedWriter 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/det ...
- 十五、IO流【黑马JavaSE笔记】(本文文中记录了个人学习感受)
文章目录 IO流 (一)File 1.File类的概述和构造方法 2.File类的创建功能 3.File类判断和获取功能 4.File类的删除功能 5.递归 6.案例(递归求阶乘) 7.案例(遍历目录 ...
- JavaSE(字符流、IO资源的处理、属性集、ResourceBundle工具类、缓冲流、转换流、序列化、打印流、装饰设计模式、commons-io工具包)
JavaSE 字符流 字符输入流[Reader] 字符输入流Reader类的概述 字符输入流Reader类的常用方法 FileReader类 FileReader类的概述 FileReader类的构造 ...
最新文章
- 命令行的全文搜索工具--ack
- c语言延时函数_介召几个frida在安卓逆向中使用的脚本以及延时Hook手法
- 算法--------数组--------容纳最多的水
- 【新星计划】MATLAB绘制图形
- Document Builder: 怎样根据document ID使用API获得document的所有数据
- Api demo源码学习(8)--App/Activity/QuickContactsDemo --获取系统联系人信息
- 如何在windows机器上安装apache ab
- 苹果系统使用之输入法的呈现与设置问题
- 计算机网络 第章 运输层
- MongoDB 数据集合导出 与 导入
- 如何安装仿宋GB2312字体
- 从随机森林到极端随机森林,再到深度森林
- 【c】蔡勒公式计算日期
- 安装的时候出现SPSS中can not create java virtual machine问题怎么办
- 计算机网络-聊天室的设计与实现
- 关于能力素质模型建模
- regedit.exe参数说明
- 养猫日记之如何获得一只喵
- 如何用cmd打开管理员模式
- 非谓语动词 + 情态动词学习笔记
热门文章
- C#关于事件的几个好例子
- Delphi 与 DirectX 之 DelphiX(72): TDIB.SephiaEffect();
- Apache Mahout基于商品的协同过滤算法流程分析
- android 开机启动服务。
- 电商顾客满意的五大决定因素
- 使用开源CRM进行客户关系管理(2)
- 创作共用协议创始人-Lawrence Lessig(2)
- 898. 子数组按位或操作
- python read_csv chunk_Python 数据分析之逐块读取文本的实现
- 【GVA】gorm多对多many2many删除数据的同时级联删除关联中间表中的关联数据