Java IO(input output)流二
一.字符流的缓冲区
1.什么是缓冲区
缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,
这部分预留的空间就叫做缓冲区。缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。
2.为什么要引入缓冲区
缓冲区就是一块内存区,它用在输入输出设备和CPU之间,用来缓存数据。是为了减少系统调用,使其能够高效率工作。
3.字符流的缓冲
3.1 BufferWriter实例
1 import java.io.*; 2 3 //使用BufferedWriter缓冲区对象来读取数据 4 public class BufferedWriterDemo { 5 6 public static void main(String[] args) throws IOException{ 7 //新建一个文件流来存储数据,并传递给BufferedWriter对象 8 FileWriter fw =new FileWriter("BuffWriter_copy.txt"); 9 //新建缓冲区对象并将文件流对象传递给其构造函数 10 BufferedWriter bufw=new BufferedWriter(fw); 11 //往缓冲区中写数据 12 for(int i=0;i<10;i++){ 13 14 bufw.write("abcde"+i); 15 16 bufw.newLine(); 17 //将内存中的数据刷新到文件中 18 bufw.flush(); 19 } 20 //关闭缓冲区 21 bufw.close(); 22 } 23 24 }
运行结果
3.2 BufferedReader实例
import java.io.*;/** 建立BufferedReader缓冲区,使用newLine和readLine方法*/ public class BUfferedReaderDemo {public static void main(String[] args) throws IOException {//新建文件流,并将数据传递给缓冲区构造函数FileReader fr = new FileReader("test.txt") ;//新建缓冲区,调用其构造函数BufferedReader bufr = new BufferedReader(fr);//将数据打印//因为BufferedReader返回的最后数据为String,如果到了最后则为nullString line=null;//调用BufferedReader的readLine方法while((line=bufr.readLine())!=null){System.out.println(line);}}}
运行结果
二.综合实例
利用字符缓冲区来将一个文件内容复制到另一文件中
import java.io.*; /** 利用字符缓冲区来将一个文件内容复制到另一文件中*/ public class BufferWriterDemo {public static void main(String[] args) {//创建一个缓冲区写对象,并初始化为nullBufferedWriter bufw=null;//创建一个缓冲区读对象,并初始化为nullBufferedReader bufr=null;try{//缓冲区的构造函数必须 有一个参数//新建一个写文件的流并传递给缓冲区写对象的构造函数bufw=new BufferedWriter(new FileWriter("buffer_copy.txt"));//新建一个读文件的流并传递给缓冲区读对象的构造函数bufr=new BufferedReader(new FileReader("FileRead.java"));//缓冲区返回一个String值,当缓冲区中没有数据是值为nullString line=null;//缓冲区写对象有一个readLine函数,用来按行读取数据while((line=bufr.readLine())!=null){//缓冲区写对象也有write函数 bufw.write(line);//newLine将读到的数据换行,也就是按原来数据格式一致来存储 bufw.newLine();//刷新数据到文件中 bufw.flush();}}catch(IOException e){throw new RuntimeException("读写错误");}finally{try{if(bufw!=null){bufw.close();}}catch(IOException e){throw new RuntimeException("写错误");}try{if(bufr!=null){bufr.close();}}catch(IOException e){throw new RuntimeException("读错误");}}}}
运行结果
转载于:https://www.cnblogs.com/3WWanXiang/p/4575219.html
Java IO(input output)流二相关推荐
- Java IO: 其他字符流(下)
转载自 Java IO: 其他字符流(下) 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 本小节会简要概括Java IO中的PushbackRe ...
- Java——IO(打印流)
1,打印字节流(PrintStream)的概述: 打印流可以很方便的将对象的toString()结果输出并且自动加上换行,而且可以使用自动刷出的模式 System.out就是一个PrintStream ...
- java.io.IOException: output.properties data exceeds its limit [2048] hue的调度
java.io.IOException: output.properties data exceeds its limit [2048] hue的调度问题 添加配置 输出大小默认是2048,在ooz ...
- 解决 rsync IO input / output error , failed verification — update discarded
rsync出错: IO input / output error (5) failed verification - update discarded (will try again). 将目的文件删 ...
- 系统学习 Java IO (六)----管道流 PipedInputStream/PipedOutputStream
目录:系统学习 Java IO---- 目录,概览 PipedInputStream 类使得可以作为字节流读取管道的内容. 管道是同一 JVM 内的线程之间的通信通道. 使用两个已连接的管道流时,要为 ...
- java io 字节流 字符流
1.流的概念 在程序中,所有的数据都是以流的形式进行传输和保存的,当程序需要数据的时候要使用输入流读取数据,而当程序需要保存数据时要使用输出流写数据 2.字节流和字符流 字节流:处理单元为1个字节,操 ...
- java IO(输入输出) 字符流
//读取文件中的字符 package zhi_jie_liu;import java.io.*;public class Example08 {public static void main(Stri ...
- java io异常处理_IO流异常处理
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; /* *IO流异常处理 *try c ...
- Java IO 之 介质流
2019独角兽企业重金招聘Python工程师标准>>> 自己工作虽有将近三年了,也算得上是一个程序老手了,但对IO这块一直一知半解,以至于每次写IO相关的代码时,总不能随心所欲的写出 ...
- java IO之 序列流 集合对象Properties 打印流 流对象
序列流 也称为合并流. SequenceInputStream 序列流,对多个流进行合并. SequenceInputStream 表示其他输入流的逻辑串联.它从输入流的有序集合开始,并从 第一个输入 ...
最新文章
- quartz+spring框架动态调整频率实践
- rsyslog syslog详解
- python个人所得税怎么写分录_个人所得税的会计分录!
- SQLite指南(5) - PRAGMA命令用法(完整)
- 解决web网站被挂马清除方法
- numpy—np.diag(v, k=0)
- HTTP协议和HttpClient的入门
- android java调用js方法参数_android中利用webview调用网页上的js代码 Java代码调用js并传递参数...
- SCM供应链协同管理系统解决方案
- AIDA64测试CPU性能 AIDA64测试CPU需要多久
- python字典的key提取_python 字典操作提取key,value
- [FAQ20527] 如何关闭OTG功能
- 无法直接在IE中打开PDF文件的解决方法
- Longest Increasing Subsequence
- Oracle批量低耗清除历史数据
- 没有网就不能和女朋友开视频了?有Python在!没网照样开视频!
- speedoffice表格中如何隐藏网络线
- 【玩转ms17-010】mysql数据库-脱裤实践
- 用ddddocr识别图形字符验证码
- Codeforces 1037E Trips
热门文章
- linux ati显卡驱动下载,LINUX 下ati最新显卡驱动下载
- python json文件太大_python - python json.dump创建的文件太大 - 堆栈内存溢出
- vacode允许c_使用VS code编译运行C,C++,Java程序
- 过年了,就别再背电脑回家。
- markdown引入代码_给你自己的博客加个 Markdown
- Spring MVC登录实例
- 微信小程序php java_PHP实现微信小程序用户授权的工具类示例
- 20190809:旋转数组
- html保存为svg,JavaScript – 将内联SVG保存为JPEG / PNG / SVG
- linux下编写sql脚本,在Linux系统中编写简易shell脚本,向PLSQL表中插入数据