为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第8天 JAVA输入输出流

标签:
Java

课程名称:JAVA输入输出流

课程章节:第4章 字节流

课程讲师: Cedar

课程内容:


IO流(输入流、输出流)

字节流、字符流

1)字节流InputStream、OutputStream

  • InputStream抽象了应用程序读取数据的方式

  • OutputStream抽象了应用程序写出数据的方式

2)EOF = End,读到-1就读到结尾

3)输入流基本方法

int b = in.read();//读取一个字节无符号填充到int低8位。-1是EOF

in.read(byte[] buf)

in.read(byte[] buf,int start,int size)

4)输出流基本方法

out.write(int b);//写出一个byte到流,b的低8位

out.write(byte[] buf)//将buf字节数组都写入到流

out.write(byte[] buf,int start,int size)//字节数组buf从start位置开始写size长度的字节到流

5)FileInputStream具体实现了在文件上读取数据

https://img1.sycdn.imooc.com//63ebad850001a30f14500816.jpg

FileInputStream in = new FileInputStream(fileName);

byte[] buf = new byte[20 * 1024]; //字节数足够大时

int bytes = in.read(buf,0,buf.length);

https://img1.sycdn.imooc.com//63ebad8d0001445014540820.jpg

byte[] buf = new byte[8 * 1024]; //字节数较小时

https://img1.sycdn.imooc.com//63ebad9d0001732614500808.jpg

6)FileOutputStream具体实现了向文件中写出byte数据的方法

FileOutputStream out = new FileOutputStream(fileName); //如果文件不存在则直接创建,如果存在则删除后创建

out.write('A'); //写出了A的低8位

int a = 10; //write只能写8位,写一个int需要写4次

out.write(a >>> 24);

out.write(a >>> 16);

out.write(a >>> 8);

out.write(a);

https://img1.sycdn.imooc.com//63ebadaa0001312214480816.jpg

7)DataOutputStream、DataInputStream

  • 对流功能的扩展,可以更加方便的读取int,long,字符等类型数据,

DataOutputStream

writeInt()\writeDouble()\writeUTF()

DataOutputStream dos = new DataOutputStream(new FileOutputStream(fileName));

dos.writeInt(10);

dos.writeDouble(10.5);

dos.writeUTF("中国"); //utf-8编码写出

dos.writeChars("中国"); //utf-16be编码写出

dos.close;

DataInputStream

DataInputStream dis = new DataInputStream(new FileInputStream(fileName));

int i = dis.readInt();

long l = dis.readLong();

8)BufferedInputStream&BufferedOutputStream

  • 提供了带缓冲区的操作,提高了IO的性能。

FileOutputStream--->write()方法,相当于一滴一滴地把水转移过去

DataOutputStream--->writeXXX()方法方便一些,相当于一瓢一瓢地把水转移过去

BufferedOutputStream--->write()方法更方便一些,相当于一瓢一瓢先放入桶中,再从桶中倒至缸内

https://img1.sycdn.imooc.com//63ebadba000174b214500816.jpg

课程收获:

本次课程了解了文件流、数据流和缓冲流三种类,以及它们的性能对比,对日常的文件上传下载很有帮助,期待后续更多实践应用。


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消