一、数据流

注意:使用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流系列(三):数据流、缓存流相关推荐

  1. Java基础(三)IO流和对象流

    文件及IO流 File类 1.来自于java.io包 2.是文件和目录路径名的抽象表示 3.文件和目录可以通过File封装为对象 4.对于File而言,封装的不是真正存在的文件,仅仅是封装一个路径,路 ...

  2. 【Java编程系列】gateway限流实践时发生的问题和解决方案

    前期回顾: [Java编程系列]Springcloud-gateway自带限流方案实践篇 1.实践中发生的问题 主要有以下几个问题: 1.限流返回的响应数据无法自定义 (LogFormatUtils. ...

  3. Java多线程系列(三):Java线程池的使用方式,及核心运行原理

    之前谈过多线程相关的4种常用Java线程锁的特点,性能比较.使用场景,今天主要分享线程池相关的内容,这些都是属于Java面试的必考点. 为什么需要线程池 java中为了提高并发度,可以使用多线程共同执 ...

  4. JAVA通信系列三:Netty入门总结(转)

    一.Netty学习资料 书籍<Netty In Action中文版> 对于Netty的十一个疑问 http://news.cnblogs.com/n/205413/ 深入浅出Netty h ...

  5. JAVA通信系列三:Netty入门总结

    一.Netty学习资料 书籍<Netty In Action中文版> 对于Netty的十一个疑问 http://news.cnblogs.com/n/205413/ 深入浅出Netty h ...

  6. java线程同步的实现_【Java多线程系列三】实现线程同步的方法

    packagecom.concurrent.test;importjava.util.Stack;importjava.util.concurrent.ArrayBlockingQueue;impor ...

  7. Java基础系列三之继承

    继承 一.什么是继承 继承是一个类继承另一个类,这个类拥有被继承的类中所有的成员方法(除了父类的构造方法)和属性: 继承是面向对象特征之一: 实现继承的类称为子类或者派生类,被继承的类称为父类,或者称 ...

  8. Buffered缓存流

    处理流: 处理流是对一个已经存在的流的连接和封装,利用的是装饰设计模式,通过所封装后的流进行功能调用实现数据读写,例如BufferedInputStream,处理流的构造器总是需要带一个其他流的对象作 ...

  9. 09、IO流—File类与IO流

    文章目录 一.File类 基本认识 实用方法 获取功能 重命名功能(包含剪切) 判断功能 创建.删除文件 实际小案例 二.IO流 1.认识IO流 2.IO流基类介绍 字节流基类介绍 字符流基类介绍 三 ...

  10. Java爬虫系列之实战:爬取酷狗音乐网 TOP500 的歌曲(附源码)

    在前面分享的两篇随笔中分别介绍了HttpClient和Jsoup以及简单的代码案例: Java爬虫系列二:使用HttpClient抓取页面HTML Java爬虫系列三:使用Jsoup解析HTML 今天 ...

最新文章

  1. android开发应用知识,Android应用开发经常使用知识
  2. 编程语言的发展趋势及未来方向(4):动态语言
  3. 【Microstation】三维建模基础及软件入门到精通实验教程目录
  4. 【easy】234. Palindrome Linked List
  5. ruby array_Ruby中带有示例的Array.keep_if方法
  6. mysql timestamp排序_对多个表进行排序MYSQL TimeStamp
  7. 《构建之法》(第四、十七章)读书笔记
  8. 一个关于文件中位运算的的处理函数。
  9. java设计模式 建造模式_理解java设计模式之建造者模式
  10. ArrayBuffer和TypedArray,以及Blob的使用
  11. Android NotificationManager详解
  12. CF 316G3 Good Substrings——广义后缀自动机
  13. conda: command not found
  14. CF991B Getting an A
  15. 排队论模型(四):M / M / s 混合制排队模型
  16. Windows的Git Bash使用tree命令
  17. 【Sniffer和网络执法官软件助你维护网络(转网络安全)】
  18. bin音频文件转MP3
  19. Office Visio 2007 中文版 安装
  20. 关闭oracle job定时任务,oracle job 定时任务,定时执行

热门文章

  1. 花老湿学习OpenCV:Shi-Tomasi角点检测
  2. 聚醚/聚丙烯酰胺-竣甲基/聚丙烯酰胺/粒状聚N-异丙基丙烯酰胺壳聚糖水凝胶的制备方法
  3. IT行业主要做些什么
  4. 增长智能引领营销数字化,数字中台掌控消费者旅程
  5. JavaWEB作业 用CSS制作高仿QQ空间
  6. C语言实现FTP客户端(已编译,亲试可用~)
  7. 新版TCGA的突变SNP数据添加临床信息
  8. python无限循环怎么结束,python的无限循环及退出
  9. 2020年计算机设计大赛 人流量预测 (国赛三等奖)
  10. 键盘没有NumLock这个键 怎样解锁数字键盘?