Java流系列(三):数据流、缓存流
一、数据流
注意:使用data输出流写出数据后,在使用Data输入流读取时一定要保证读取的顺序和写出的顺序一致,否则数据出现错乱。
(一)、使用数据输入流完成数据的读取操作
1.声明数据输入流对象
DataInputStream dataInputStream=null;
2.实例化数据输入流对象
dataInputStream=new DataInputStream(new FileInputStream(path));
3.完成数据的读取操作
byte b=dataInputStream.readByte();
short s=dataInputStream.readShort();
int i=dataInputStream.readInt();
long l=dataInputStream.readLong();
float f=dataInputStream.readFloat();
double d=dataInputStream.readDouble();
char ch=dataInputStream.readChar();
boolean bool=dataInputStream.readBoolean();
String content=dataInputStream.readUTF();
System.out.println("b="+b+",s="+s+",i="+i+",l="+l+",float="+f+",double="+d+",ch="+ch+",bool="+bool+",content="+content);
(二)、使用数据输出流完成对Java八大基本数据类型及其String数据类型的写出功能.
1.声明数据输出流对象
DataOutputStream dataOutputStream=null;
2.实例化数据输出流对象
dataOutputStream=new DataOutputStream(new FileOutputStream(path));
3.将java八大基本数据类型及其String数据类型写出到指定的文件中
dataOutputStream.writeByte(5);
dataOutputStream.writeShort(10);
dataOutputStream.writeInt(15);
dataOutputStream.writeLong(20);
dataOutputStream.writeFloat(25.0f);
dataOutputStream.writeDouble(30.5d);
dataOutputStream.writeChar('a');
dataOutputStream.writeBoolean(false);
dataOutputStream.writeUTF("垂死病中惊坐起,今天还有学Java!");
二、字节缓存流
(一)、使用缓存输入流对象完成对指定文件的读取操作
1.声明缓冲输入流对象
BufferedInputStream bufferedInputStream=null;
2.实例化缓存输入流对象
bufferedInputStream=new BufferedInputStream(new FileInputStream(path));
3.读取数据
byte[] buffer=new byte[10];
int len=0;
while((len=bufferedInputStream.read(buffer))!=-1){
System.out.println(new String(buffer,0,len));
}
4、关闭缓存输入流对象
bufferedInputStream.close();
//将缓存输入流对象垃圾化
bufferedInputStream=null;
(二)、使用缓存输出流对象完成对指定路径中文件的写入操作
1、声明缓冲输出流对象
BufferedOutputStream bufferedOutputStream=null;
2.实例化缓存输出流对象
bufferedOutputStream=new BufferedOutputStream(new FileOutputStream(path));
3.执行写出操作
bufferedOutputStream.write("众里寻他千百度,蓦然回首,那人正在低头学Java".getBytes());
//强制刷新缓冲区
bufferedOutputStream.flush();
4、关闭缓存输出流对象
bufferedOutputStream.close();
//将缓存输出流对象垃圾化
bufferedOutputStream=null;
三、字符缓存流
- BufferedReader常用的方法: String readLine():一次从输入流中读取一行数据
- BufferedWriter常用的方法: void newLine():向输出流对象中写出换行符
(一)、使用缓冲输入流对象完成对指定文件的读取操作
1、声明缓冲输入流对象
BufferedReader bufferedReader=null;
2、实例化缓冲输入流对象
bufferedReader=new BufferedReader(new FileReader(path));
String line=null;
3.执行读取操作
bufferedReader.readLine()如果返回值为null表示读取完毕
while((line=bufferedReader.readLine())!=null){
System.out.println(line);
}
4、关闭缓冲输入流对象
bufferedReader.close();
//将缓冲输入流对象垃圾化
bufferedReader=null;
(二)、使用缓存输出流对象完成对指定文件的数据写入功能
1.声明缓冲输出流对象
BufferedWriter bufferedWriter=null;
2.实例化缓冲输出流对象
bufferedWriter=new BufferedWriter(new FileWriter(path));
3.完成写出操作
bufferedWriter.write("人生自古谁无死,来生再来学Java!");
bufferedWriter.newLine();//写出一个换行符,在window中写出\r\n,在Unix中写出\n
bufferedWriter.write("春眠不觉晓,处处学Java!");
bufferedWriter.newLine();
//刷新缓冲区
bufferedWriter.flush();
4、关闭缓存输出流对象
bufferedWriter.close();
//将缓存输出流对象垃圾化
bufferedWriter=null;
四、 完成文本文件的复制操作
将源文件中的数据读取出来写出到目标文件中完成数据的复制
1、声明字符缓冲输入、输出流
BufferedReader bufferedReader=null;
BufferedWriter bufferedWriter=null;
2.实例化缓冲输入流、输出流对象并指定要操作的文件
bufferedReader=new BufferedReader(new FileReader(src));
bufferedWriter=new BufferedWriter(new FileWriter(dest));
3、读取指定文件中的数据,并向指定文件中写入
String line=null;
while((line=bufferedReader.readLine())!=null){
bufferedWriter.write(line);
bufferedWriter.newLine();
}
//刷新缓冲区
bufferedWriter.flush();
4、关闭输入流对象、输出流对象
bufferedReader.close();
//将输入流对象垃圾化
bufferedReader=null;bufferedWriter.close();
//将输出流对象垃圾化
bufferedWriter=null;
Java流系列(三):数据流、缓存流相关推荐
- Java基础(三)IO流和对象流
文件及IO流 File类 1.来自于java.io包 2.是文件和目录路径名的抽象表示 3.文件和目录可以通过File封装为对象 4.对于File而言,封装的不是真正存在的文件,仅仅是封装一个路径,路 ...
- 【Java编程系列】gateway限流实践时发生的问题和解决方案
前期回顾: [Java编程系列]Springcloud-gateway自带限流方案实践篇 1.实践中发生的问题 主要有以下几个问题: 1.限流返回的响应数据无法自定义 (LogFormatUtils. ...
- Java多线程系列(三):Java线程池的使用方式,及核心运行原理
之前谈过多线程相关的4种常用Java线程锁的特点,性能比较.使用场景,今天主要分享线程池相关的内容,这些都是属于Java面试的必考点. 为什么需要线程池 java中为了提高并发度,可以使用多线程共同执 ...
- JAVA通信系列三:Netty入门总结(转)
一.Netty学习资料 书籍<Netty In Action中文版> 对于Netty的十一个疑问 http://news.cnblogs.com/n/205413/ 深入浅出Netty h ...
- JAVA通信系列三:Netty入门总结
一.Netty学习资料 书籍<Netty In Action中文版> 对于Netty的十一个疑问 http://news.cnblogs.com/n/205413/ 深入浅出Netty h ...
- java线程同步的实现_【Java多线程系列三】实现线程同步的方法
packagecom.concurrent.test;importjava.util.Stack;importjava.util.concurrent.ArrayBlockingQueue;impor ...
- Java基础系列三之继承
继承 一.什么是继承 继承是一个类继承另一个类,这个类拥有被继承的类中所有的成员方法(除了父类的构造方法)和属性: 继承是面向对象特征之一: 实现继承的类称为子类或者派生类,被继承的类称为父类,或者称 ...
- Buffered缓存流
处理流: 处理流是对一个已经存在的流的连接和封装,利用的是装饰设计模式,通过所封装后的流进行功能调用实现数据读写,例如BufferedInputStream,处理流的构造器总是需要带一个其他流的对象作 ...
- 09、IO流—File类与IO流
文章目录 一.File类 基本认识 实用方法 获取功能 重命名功能(包含剪切) 判断功能 创建.删除文件 实际小案例 二.IO流 1.认识IO流 2.IO流基类介绍 字节流基类介绍 字符流基类介绍 三 ...
- Java爬虫系列之实战:爬取酷狗音乐网 TOP500 的歌曲(附源码)
在前面分享的两篇随笔中分别介绍了HttpClient和Jsoup以及简单的代码案例: Java爬虫系列二:使用HttpClient抓取页面HTML Java爬虫系列三:使用Jsoup解析HTML 今天 ...
最新文章
- android开发应用知识,Android应用开发经常使用知识
- 编程语言的发展趋势及未来方向(4):动态语言
- 【Microstation】三维建模基础及软件入门到精通实验教程目录
- 【easy】234. Palindrome Linked List
- ruby array_Ruby中带有示例的Array.keep_if方法
- mysql timestamp排序_对多个表进行排序MYSQL TimeStamp
- 《构建之法》(第四、十七章)读书笔记
- 一个关于文件中位运算的的处理函数。
- java设计模式 建造模式_理解java设计模式之建造者模式
- ArrayBuffer和TypedArray,以及Blob的使用
- Android NotificationManager详解
- CF 316G3 Good Substrings——广义后缀自动机
- conda: command not found
- CF991B Getting an A
- 排队论模型(四):M / M / s 混合制排队模型
- Windows的Git Bash使用tree命令
- 【Sniffer和网络执法官软件助你维护网络(转网络安全)】
- bin音频文件转MP3
- Office Visio 2007 中文版 安装
- 关闭oracle job定时任务,oracle job 定时任务,定时执行