第二篇 输入输出流

本文详细介绍了Java IO流中的InputStream抽象类及其子类ByteArrayInputStream、DataInputStream和Reader,阐述了它们的功能、用途及注意事项。重点讨论了如何在实际应用中合理选择并使用这些类来处理字节流和字符流数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第二篇 输入输出流

java.io.InputStream
这是一个抽象类,它定义的方法可以用于以字节流的形式从一个输入源读取数据。

注意:InputStream是面向字节的而不是面向字符的,因此,不能保证通过将字节序列扩宽到char序列中就可以用它安全地读取字符数据。实际上,应当使用DataInputStream的readUTF()方法或readChar()方法,或者使用一个带有合适于输入流数据编码的InputStreamReader来处理字符数据。

java.io.ByteArrayInputStream
InputStream的子类,该类根据向它的某个构造函数传递的一个字节数组返回数据。
如果想再读取数据时感觉这些数据好像来自于文件、通道或套接字,则这个类非常有用,例如rms读取。
这个类支持InputStream的mark()和reset()操作。此流不能对字节数组进行转换,但由于流不复制数据因此可以修改数组中的内容然后再调用了reset()方法之后重新读取,但须注意原始字节数组必须足以容纳所要做的修改时才可以。
java.io.DataInput(interface)
这是一个由类实现的接口,可以从与平台无关的二进制编码中读取字符串和java的基本类型。其中,与平台无关的二进制编码由实现DataOutput接口的类创建。
实现readFully()方法。
java.io.DataInputStream

它是InputStream的子类,实现了DataInput接口的方法,从另一个InputStream中将已编码数据读入一个字节序列。此类实例不仅能直接创建,而且还能有其他不同方法(如javax.microedition.io.Connector的openDataInputStream方法)获得。在这种情况下,openDataInputStream方法返回一个流,从而可以由网络连接读取数据,或者是由利用CLDC通用连接框架可以访问到的其他类型的数据源读取数据。

java.io.Reader
这是一个抽象类,它定义一组方法,这些方法由提供字符输出的子类实现,Reader与InputStream的不同在于,它是以16位Unicode字符形式而不是8位字符工作的。
通过将InputStream与InputStreamReader包装在一起,可以将8位InputStream转换成Unicode字符序列。Reader提供的大多数方法与InputStream相同,只是它的基本传输单位是char而不是byte。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值