java学习之流的学习

[size=medium]因为经常用到流,并且发现java中的数据流的确很多种类,而自己只知道常用的输入输出流,好多都不知道,且好多也不知道怎么用,于是在网上找了些资料
先是从百度经验中找到的一片关于流的使用技巧,觉得还是蛮不错的,分析的很透彻,这里就记下来:[/size]
[b][size=medium]方法/步骤:[/size][/b]
[color=red][size=medium]第一步:[/size][/color][size=medium]首先明确IO流中有2个主要体系,字节输入(InputStream)输出流(OutputStream)和字符输入(Reader)输出流(Writer).[/size]
[size=medium][color=red]第二步:[/color][/size][size=medium]明确数据的来源和数据的目的地,如果数据的来源是纯文本那么就用Reader,不是纯文本选择InputStream.如果数据的目的地是纯文本就用Writer不是纯文本就用OutputStream[/size]
[color=red][size=medium]第三步:[/size][/color][size=medium]明确具体的设备.即数据源是从哪个设备来的,是硬盘就用File;是键盘就用System.in(是一个InputStream对象);是内存用数组,是网络的话用Socket流.同样目的地是什么设备,是硬盘就用File;键盘就用System.out(OutputStream对象);是内存用数组,网络用Socket.[/size]
[color=red][size=medium]第四步:[/size][/color]明确是否还需要加其他额外的功能.①是否要较高的效率,即是否需要加缓冲区Buffered.②是否需要转换,是的话就需要转换流,也常称过滤流InputStreamReader和OutputStreamWriter
[size=medium]通过上面的步骤,基本可以确定用哪个类了,下面就是举出2个例子,如下:[/size]

[b][size=small]需求1:复制一个文本文件[/size][/b]
1.明确体系
源:InputStream Reader
目的:OutputStream Writer
2.明确数据
源是纯文本 ? Reader : InputStream
目的是纯文本 ? Writer : OutPutStream
3.明确设备
源文件是硬盘上的一个文件:FileReader fr = new FileReader("a.txt")
目的文件是硬盘上的一个文件:FileWriter fw = new FileWriter("b.txt")
4.需要额外功能吗
需要,高效 使用
BufferedReader br = new BufferedReader(new FileReader("a.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt"));



[b][size=small]需求2:读取键盘录入,将内容存储到文件中[/size][/b]
1.明确体系:
源:InputStream Reader
目的:OutputStream Writer
2.明确数据:
源是否是纯文本?Reader:InputStrean
目的是否是纯文本?Writer:OutputStream
3.明确设备
源:键盘 InputStream is= System.in
目的:文件 FileWriter fw = new FileWriter("b.txt");
4.需要额外功能吗
需要,因为源体系是Reader,而设备是System.in(InputStream的对象),所以需要转换过滤流(InputStreamReader)
InputStreamReader isr = new InputStreamReader(System.in);
FileWriter fw = new FileWriter("a.txt");
需要高效吗?
需要:BufferedReader br = new BufferedReader(new InputStreamReader(System.in))
BufferedWriter bw = new BufferedWriter(new FileWriter('b.txt'))


[color=red][size=medium]以上就是关于具体用到什么流的一种方式,借鉴来的,做次记录, 觉得这个步骤还是很不错的[/size][/color]

[color=violet][size=medium]下面IO流的体系结构图:[/size][/color]

[img]http://dl2.iteye.com/upload/attachment/0105/4558/9e0e2899-53a2-3273-a885-0d3f47d3e197.jpg[/img]

[img]http://dl2.iteye.com/upload/attachment/0105/4560/c51427fe-0899-3909-a459-a4e53912d8f4.jpg[/img]

先记录多!上班做事了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值