java i/o close作用_Java I/O 几个重要流的应用

IO流程图

0e4a976f70a2845e1f9120cae43ea706.png

掌握13个Io流

一、FileInputStream 和 FileoutputStream

FileInputStream:文件的读取

1 public classreaders2 {3 public static void main(String[] args) throwsException4 {5 File file = new File("F:\\java\\workspace\\Fanshe\\src\\com\\cyg\\fanshe.java");//读取文件

6 FileInputStream fi = new FileInputStream(file);//创建字节流,打开该 文件

7 byte[] b = new byte[fi.available()];//fi.available 可以获取文件占多少字节

8 int a = -1;9 while((a= fi.read(b))!= -1)//判断文件是否到达文件末尾

10 {11 //System.out.println(new String(b));

12 }13 System.out.println(newString(b));14 //关闭流

15 fi.close();16

17 }18 }

FileoutputStream:文件的写入

1 public classoutput2 {3 public static void main(String[] args) throwsException4 {5 File file = new File("F:\\a.txt");6 FileOutputStream out = newFileOutputStream(file);7 out.write("abmin".getBytes());8 out.flush();//清楚缓存

9 out.close();//关闭流

10 }11 }

二、BufferedInputStream 和 BufferedOutputStream

BufferedInputStream  是一个缓冲流

作用:为另一个输入流添加一些功能,即缓冲输入以及支持 mark (标记)和 reset 重置方法的能力,是通过一个内部缓冲区数组实现的。

1 public classbuffertream2 {3 public static void main(String[] args) throwsException4 {5 FileInputStream in = new FileInputStream("E:\\win10 64\\vmware.log");6 BufferedInputStream bu = newBufferedInputStream(in);7 FileOutputStream out = new FileOutputStream("E:\\a.txt");8 BufferedOutputStream bo = newBufferedOutputStream(out);9

10 byte[] b = new byte[1024];11 int a =bu.read(b);12 while(a != -1)13 {14 //System.out.println(Arrays.toString(b));

15 bo.write(b, 0, a);16 a =bu.read(b);17 }18 in.close();19 bu.close();20

21 bo.flush();22 out.close();23 bo.close();24 }25 }

运行结果如下

8903ec02c71d334ce32cb91694016acd.png

三、DataOutputStream 和 DataInputStream

是一个数据输入流 它继承FilterInputStream,用来装饰其他输入流

1 public classadtastream2 {3 public static void main(String[] args) throwsException4 {5 FileOutputStream out = new FileOutputStream("E:\\b.txt");6 DataOutputStream dot = new DataOutputStream(out);//过滤流必须要有一个节点流7

8 //写入数据

9 dot.writeInt(10);10 dot.writeBytes("admin");11 dot.writeChar('a');12 dot.writeBoolean(true);13

14 out.flush();15 out.close();16 dot.close();17

18 FileInputStream in = new FileInputStream("E:\\b.txt");19 DataInputStream di = newDataInputStream(in);20

21 //读取数据的时候要和写入的顺序一样 不然破坏结构

22 System.out.println(di.readInt());23 System.out.println(di.readByte());24 System.out.println(di.readChar());25 System.out.println(di.readBoolean());26 }27 }

a560b4454490e7fe3893ab4e93430937.png

四、ByteArrayInputStream 和 ByteArrayOutputStream

ByteArrayInputStream 专门用来读取内存中的数据

1 public classbytestream2 {3 public static void main(String[] args) throwsException4 {5 ByteArrayOutputStream out = newByteArrayOutputStream();6 String str = "admin";7 out.write(str.getBytes());8 byte [] b = new byte[200];9 ByteArrayInputStream in = new ByteArrayInputStream(str.getBytes());//ByteArrayInputStream: 专门用来从内从中读取数据的流

10 in.read(b);11 System.out.println(Arrays.toString(b));12 }13 }

f87cdf4fd4daf0a33e2c6ea23f955dff.png

打印出来是damin所对应的系统底层源码

五、ObjectInputStream 和 ObjectoutputStream

六、BufferedReader 和 BufferedWriter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值