继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

慕名9214806
关注TA
已关注
手记 21
粉丝 0
获赞 0

课程名称: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具体实现了在文件上读取数据

http://img2.mukewang.com/63ebad850001a30f14500816.jpg

FileInputStream in = new FileInputStream(fileName);

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

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

http://img2.mukewang.com/63ebad8d0001445014540820.jpg

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

http://img4.mukewang.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);

http://img4.mukewang.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()方法更方便一些,相当于一瓢一瓢先放入桶中,再从桶中倒至缸内

http://img1.mukewang.com/63ebadba000174b214500816.jpg

课程收获:

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


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP