一级a做爰电影免费观看网站,wifi网络服务商电话,游戏设计师网站有哪些,商场大型话题活动策划网站文章目录 前言一、带缓冲的输入输出流是什么#xff1f;二、使用方法 1.BufferedInputStream与BufferedOutputStream类2.BufferedReader与BufferedWriter类总结 前言 输入输出流可以视为#xff0c;从A点把货物搬运至B点。那么带缓冲的意思可以视为用货车把A点的货物搬运至B点…文章目录 前言一、带缓冲的输入输出流是什么二、使用方法 1.BufferedInputStream与BufferedOutputStream类2.BufferedReader与BufferedWriter类总结 前言 输入输出流可以视为从A点把货物搬运至B点。那么带缓冲的意思可以视为用货车把A点的货物搬运至B点。顾名思义带有缓存的输入输出流运行效率更高。本篇文章讲述输入输出流更深一步的使用。 一、带缓存的输入输出流是什么 缓存是I/O的一种性能优化。缓存流为I/O流增加了内存缓存区相当于运输货物过程中的货箱。有了缓存区比喻货箱使得在流上执行skip()、mark()与reset()方法都可以使用。总而言之这篇文章讲述在输入输出流外部进行包装带有缓存功能提高IO流效率。需要导入java.io包
二、使用方法
1.BufferedInputStream与BufferedOutputStream类
构造方法
new BufferedInputStream(InputStream in);
//将字节输入流包装成一个带有32个字节的缓存字节输入流new BufferedInputStream(InputStream in,int size);
//将字节输入流包装成一个带有指定个数字节的缓存字节输入流new BufferedOutputStream(OutputStream out);
//将字节输出流包装成一个带有32个字节的缓存字节输出流new BufferedOutputStream(OutputStream out,int size);
//将字节输出流包装成一个带有指定个数字节的缓存字节输出流
实操展示
项目通过缓存字节输出流输入数据至文件中再由缓存字节输入流读取出来。计时运行时间比较一下带缓存和不带缓存的区别。
import java.io.*;
public class Demo {public static void main(String[] args) {File file new File(show.txt);BufferedOutputStream outputStream2 null;FileOutputStream outputStream null;BufferedInputStream inputStream2 null;FileInputStream inputStream null;long startime System.currentTimeMillis();try{outputStream new FileOutputStream(file);outputStream2 new BufferedOutputStream(outputStream);String str 安得广厦千万间;byte b[] str.getBytes();outputStream2.write(b);outputStream2.flush();
//包装后需要每次写入都刷新一下保证写入内容完整装不满字节数是不会写入的刷新直接将其写入byte b2[] new byte[1024];inputStream new FileInputStream(file);inputStream2 new BufferedInputStream(inputStream);int len inputStream2.read(b2);System.out.println(文件内容new String(b2,0,len));while (inputStream.read(b2)!-1);long endtime2 System.currentTimeMillis();System.out.println(带缓存的字节输入流所耗时间为(endtime2-startime));while (inputStream.read(b)!-1);long endtime System.currentTimeMillis();System.out.println(字节输入流所耗时间为(endtime-startime));}catch(IOException e){e.printStackTrace();}finally{try {//先开启的流最后关闭开关顺序为 123321outputStream2.close();outputStream.close();inputStream2.close(); inputStream.close();} catch (IOException e) {e.printStackTrace();}}}
} BufferedOutputStream类缓冲输出字节流使用注意 1在try代码块中实例化括号引入FileOutputStream对象进行包装带入缓冲。 2在调用write()方法写入信息时同时要调用flush()方法刷新保证字符数据完整存入。 3最先开启的流最后关闭。流的开关顺序为 123321 BufferedInputStream类缓冲输入字节流使用注意 1在try代码块中实例化括号引入FileInputStream对象进行包装带入缓冲。 2最先开启的流最后关闭。流的开关顺序为 123321 运行结果 如图所示带有缓存的字节输入流读取信息的速度更快。无论是输入流还是输出流带上缓存的目的都是为了提高运行效率。
2.BufferedReader与BufferedWriter类 BufferedReader类和BufferedWriter类分别继承了Reader类和Writer类可以使用其基本方法的同时本施也增加了些方法。
构造方法
new BufferedWriter(FileWriter writer);
//将字符输入流包装成一个带有32个字节的缓存字符输入流new BufferedReader(FileReader reader);
//将字符输出流包装成一个带有32个字节的缓存字符输出流BufferedWriter类的常用方法 方法功能描述write(String s,int off,int len)写入字符串s的某一部分从off到lenflush()刷新该流的缓存缓存字符保存进文件中newLine()写入一个行分隔符换行 BufferedReader类的常用方法 方法功能描述read()读取单个字符readLine()读取一个文本行并将其返回为字符串。若无数据返回null值。不断读取下一行直到遇到文件末尾。 实操展示
import java.io.*;
public class Demo {public static void main(String[] args) {File file new File(show.txt);BufferedWriter writer null;FileWriter writer2 null;BufferedReader reader null;FileReader reader2 null;try{writer2 new FileWriter(file);writer new BufferedWriter(writer2);String str1 长亭外古道边芳草碧连天。;String str2 晚风拂柳笛声残夕阳山外山。;writer.write(str1);writer.newLine(); //换行输入内容writer.write(str2);writer.flush(); //刷新reader2 new FileReader(file);reader new BufferedReader(reader2);String tmp null;int i 1; //计数器while ((tmpreader.readLine())! null) {//使用readLine()方法读取下一行信息不需要引入参数保存数据。System.out.println(第i行的内容为tmp);i;}}catch(IOException e){e.printStackTrace();}finally{try {//先开启的流最后关闭开关顺序为 123321writer.close();writer2.close();reader.close();reader2.close();} catch (IOException e) {e.printStackTrace();}}}
} BufferedWriter类缓冲输入字节流使用注意 1在try代码块中实例化括号引入FileInWriter对象进行包装带入缓冲。 2在调用write()方法写入信息时同时要调用flush()方法刷新保证字符数据完整存入。 3最先开启的流最后关闭。流的开关顺序为 123321 BufferedReader类缓冲输出字节流使用注意 1在try代码块中实例化括号引入FileOutputStream对象进行包装带入缓冲。 2最先开启的流最后关闭。流的开关顺序为 123321 运行结果
文件输入内容 文件输出内容 如图所示字符输入输出流包装后带入缓存。不仅能提升字符数据传输的效率而且还能使用额外方便的方法例如readLine()、newLine等。 总结 以上就是带缓存的输入输出流本文只是简单介绍了带缓存的输入输出流的使用而输入输出流带上缓存既能提高运行速度又有新的便利的方法可供使用。