这段时间由于毕设、实习、培训、出差等一大堆的事情,分不开身,在此只能说是自己的无能了。
Stream,流,作用很实在专一,就是将规定数量的数据从A转到B。JDK6中,有2个大类:单字节流与双字节流(alias:字符流)。
单字节流,故名思义,就是每次传1Byte。用byte[]来进行操作是比较方便的方式。
典型父类:InputStream/OutputStream
DataStream的每Byte每Byte地读写,从不转换成什么ASCII码之类,很有个性。
优点:对于有约定的数据,总数据量有明显地减少,很划得来。特别是数字,平时用ASCII码2个字节(1个字符)。现在只1个字节就可以了,是平时的50%.
缺点:转换起来有点小麻烦。没工具,看不明白里面的是会什么。
其他的流也都差不多,各有各的特点,没什么好说的,直接看api就是了。
双字节流(字符流),是指每次传1个字符,对unicode/UTF-8/UTF-16/UTF-32等的支持较好。
典型父类:Reader/Writer
无论是单字节还是双字节流,数据流动的时候,基本思路都是一样的。
1.从哪里读取
2.读入字节要哪些辅助功能(例如:缓存、解压、格式转换等)
3.要作什么处理
4.写到哪里
5.怎么写到别处,需要哪些辅助功能
例如:
...
FileInputStream fin = new FileInputStream("./home/dataIn.in"); //-1
BufferedInputStream bfin = new BufferedInputStream(fin); //-2
//doSomething...(bfin.read(...);) //-3
FileOutputStream fout = new FileOutputStream("./home/data.out"); //-4
BufferedOutputStream bfout = new BufferedOutputStream(fout); //-5
...(bfout.write(...);)
========================
完事。