当前位置: 代码迷 >> 综合 >> IO操作-BufferedInputStream,InputStreamReader,DataInputStream基本演示
  详细解决方案

IO操作-BufferedInputStream,InputStreamReader,DataInputStream基本演示

热度:19   发布时间:2023-12-17 05:04:54.0
缓冲流:前面的字节流和字符流都没有使用缓冲区,这就意味着,每次的读写操作都要交给操作系统来处理。这样的做法可能会对系统的性能造成很大的影响,因为每次访问操作都可能会引发磁盘硬件的读写或网络的访问,这些磁盘硬件读写或网络访问会占用大量的资源,影响效率。缓冲流是一种装饰器

类,目的是让原字节流,字符流新增缓冲的功能。常使用BufferedInputStream或BufferedOutputStream来进行修饰。


字节流转为字符流:将一个字节流转为一个字符流,通常使用InputStreamReader或OutputStreamWriter进行转换。


数据流:简单来说就是允许字节流直接操作基本数据类型和字符串。常用DataInputStream或DataoutputStream进行转换。

演示

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;public static void main(String[] args) {
//		fun1();
//		fun2();
//		fun3();
}//演示BufferedReaderpublic static void fun1(){BufferedReader br = null;try {//BufferedReader的参数类型为Reader类br = new BufferedReader(new FileReader("F:\\test.txt"));String str = "";while((str = br.readLine()) != null){	//BufferedReader常用的方法就是readLine,如果到了文件尾部,返回null。节点流类似的方法返回-1System.out.println(str);}System.out.println("读取完毕!");} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally{//关闭流if(br != null){try {br.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}//演示InputStreamReaderpublic static void fun2(){//system.in为inputStream字节流,将其转为字符流BufferedReader br = null;try {//InputStreamReader的参数是InputStream类型的br = new BufferedReader(new InputStreamReader(System.in));System.out.println("请输入:");String str = br.readLine();System.out.println("输入的是:"+str);} catch (IOException e) {e.printStackTrace();}finally{//关闭流try {if(br != null){br.close();}} catch (IOException e) {e.printStackTrace();}}}//演示DataOutputStreampublic static void fun3(){DataOutputStream dos = null;try {//DataOutputStream的参数为OutputStream类型的,所以创建一个FileOutputStream对象dos = new DataOutputStream(new FileOutputStream("F:\\test1.txt"));dos.writeInt(45);dos.writeByte(0);dos.writeLong(469553L);dos.writeUTF("试一下啦");dos.writeChar('a');} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally{//关闭流if(dos != null){try {dos.close();} catch (IOException e) {e.printStackTrace();}}}}




  相关解决方案