`

java学习之流的学习

阅读更多
因为经常用到流,并且发现java中的数据流的确很多种类,而自己只知道常用的输入输出流,好多都不知道,且好多也不知道怎么用,于是在网上找了些资料
先是从百度经验中找到的一片关于流的使用技巧,觉得还是蛮不错的,分析的很透彻,这里就记下来:

方法/步骤:
第一步:首先明确IO流中有2个主要体系,字节输入(InputStream)输出流(OutputStream)和字符输入(Reader)输出流(Writer).
第二步:明确数据的来源和数据的目的地,如果数据的来源是纯文本那么就用Reader,不是纯文本选择InputStream.如果数据的目的地是纯文本就用Writer不是纯文本就用OutputStream
第三步:明确具体的设备.即数据源是从哪个设备来的,是硬盘就用File;是键盘就用System.in(是一个InputStream对象);是内存用数组,是网络的话用Socket流.同样目的地是什么设备,是硬盘就用File;键盘就用System.out(OutputStream对象);是内存用数组,网络用Socket.
第四步:明确是否还需要加其他额外的功能.①是否要较高的效率,即是否需要加缓冲区Buffered.②是否需要转换,是的话就需要转换流,也常称过滤流InputStreamReader和OutputStreamWriter
通过上面的步骤,基本可以确定用哪个类了,下面就是举出2个例子,如下:

需求1:复制一个文本文件
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"));



需求2:读取键盘录入,将内容存储到文件中
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'))


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

下面IO流的体系结构图:





先记录多!上班做事了

  • 大小: 94 KB
  • 大小: 54.2 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics