课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,java编程开发语言的应用范围和使用群体都在逐渐增加,今天我们就通过案例分析来了解一下,java编程的I/O流都有哪些类型。
1、字节流(ByteStreams)
字节流处理原始的二进制数据I/O。输入输出的是8位字节,相关的类为InputStream和OutputStream.
字节流的类有许多。为了演示字节流的工作,我们将重点放在文件I/O字节流FileInputStream和FileOutputStream上。其他种类的字节流用法类似,主要区别在于它们构造的方式,大家可以举一反三。
2、字符流(CharacterStreams)
字符流处理字符数据的I/O,自动处理与本地字符集转化。
Java平台存储字符值使用Unicode约定。字符流I/O会自动将这个内部格式与本地字符集进行转换。在西方的语言环境中,本地字符集通常是ASCII的8位超集。
对于大多数应用,字符流的I/O不会比字节流I/O操作复杂。输入和输出流的类与本地字符集进行自动转换。使用字符的程序来代替字节流可以自动适应本地字符集,并可以准备国际化,而这完全不需要程序员额外的工作。
3、缓冲流(BufferedStreams)
缓冲流通过减少调用本地API的次数来优化的输入和输出。
目前为止,大多数时候我们到看到使用非缓冲I/O的例子。这意味着每次读或写请求是由基础OS直接处理。这可以使一个程序效率低得多,因为每个这样的请求通常引发磁盘访问,网络活动,或一些其它的操作,而这些是相对昂贵的。
为了减少这种开销,所以Java平台实现缓冲I/O流。缓冲输入流从被称为缓冲区(buffer)的存储器区域读出数据;仅当缓冲区是空时,本地输入API才被调用。同样,缓冲输出流,将数据写入到缓存区,只有当缓冲区已满才调用本机输出API。
4、数据流(DataStreams)
DataStreams处理原始数据类型和字符串值的二进制I/O。
支持基本数据类型的值((boolean,char,byte,short,int,long,float,和double)以及字符串值的二进制I/O。所有数据流实现DataInput或DataOutput接口。本节重点介绍这些接口的广泛使用的实现,DataInputStream和DataOutputStream类。
5、对象流(ObjectStreams)
对象流处理对象的二进制I/O。
正如数据流支持的是基本数据类型的I/O,对象流支持的对象I/O。大多数,但不是全部,标准类支持他们的对象的序列化,都需要实现Serializable接口。
对象流类包括ObjectInputStream和ObjectOutputStream的。这些类实现的ObjectInput与ObjectOutput的,这些都是DataInput和DataOutput的子接口。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!