有关字符流和字节流的扩展一些读书笔记

InputStreamReader(字节流,编码表)是字节向字符转换的桥梁,通过指定编码表将字节转换成字符
OutputStreamWriter(字节流,编码表)是字符向字节转换的桥梁,通过指定编码表将字符转换成字节

1、序列流
SequenceInputStream(FileInputStream s1, FileInputStream s2),可整合两个输入流为一个,若想整合多个,则须用枚举类型进行创建。
枚举类型可用Vector存储多个,而后调用element方法,即可得到该集合中所有的流的枚举,将这个枚举构建序列流SequenceInputStream(Enumeration en),即可整和多个输入流

2、内存输出流
ByteArrayOutputStream,在内存中创建了可增长的内存数组,将读取的数据写到内存缓冲区中。通过toByteArray()方法或者toString()方法能转换成字符串进行输出。
在qq等即时聊天 中可用

3、对象操作流
该流可将一个对象写出或者读取一个对象流到程序中,也是执行了序列化与反序列化的操作
ObjectOutputStream,将对象序列化(创建的对象实现Serializable接口)后,可通过对象操作流writerObejct方法写出对象
ObjectInputStream,可通过readObject方法读入对象,该操作也是反序列化的操作。但是该操作的一个弊端在于不知道有多少个对象,读入时容易抛出异常,可一次性读入所有对象存储在集合中,遍历集合即可得到所有对象。

4、打印流
该流可以方便的将对象的toString方法的结果输出,并且加上换行,还可以自动刷出
System.out就是一个PrintStream流,默认向控制台输出
PrintStream和PrintWriter分别打印的是字节流和字符流,前者默认向控制台输出,后者则需创建字节流。
打印流只操作数据目的

5、标准的输入输出流
标准的输入输出流分别默认指向键盘和控制台,可以通过seIn,和setOut方法改变指向文件,但是一般用的比较少,文件传输还是用的字节流比较多
InputStream is = System.in; //获取标准的键盘输入流,默认指向键盘
PrintStream ps = System.out;//获取标准的键盘输出流,默认指向控制台

6、随机访问流
RandomAcceseFile,其实严格说来,RandomAccessFile不属于流,但他融合了InputStream和OutputStream的功能, 能够随机访问文件的读入和写出
通过seek方法能够指定指针值,且写出的值不会被覆盖掉,在安卓开发中有应用

7、数据输入输出流
DataInputStream和DataOutputStream,读取或者写出指定数据类型的流,如WriteInt()方法 能写int类型的数据,ReadInt()方法能读int类型的数据,但是在文件中的显示不会是int类型的数据。实际应用中用 的较少

总结:在实际应用中,字节流和字符流用的最多,其他流只在特定的场合中才可能有所应用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值