要把一片二进制数据逐一输出到某个设备中,或者从某个设备中逐一读取一片二进制数据,不管输入或者输出设备是什么,我们要用统一的方式来完成这些操作,用一种抽象的方式进行描述,这个抽象描述方式起名为IO流,对应的抽象类就是OutputStream和InputStream,不同的实现类就代表着不同的输出和输入设备,他们都是针对字节流进行操作的。
在实际应用中,经常完全是字符的一段文本输出或读取进来,用字节流可以吗?计算机中的一切最终都是二进制字节形式存在。对于“中国”这些字符,首先需要得到对于的字节,然后将字节写入到输出流中。读取也一样,需要读取到的是字节,然后将这些字节转换成字符并显示出来。由于这一的需求很广泛,人们专门提供了字符流的包装类。
底层设备永远只接收字节数据,有时候要写字符串到底层设备,需要将字符串转换成字节再进行写入。字符流是字节流的包装,字符流则可以直接接受字符串,它内部将字符串转换成字节。
字符想字节转换时,要注意编码的问题,因为字符串转换成字节数组,其实是转换成该字符的某种编码的字节形式,读取也是一样的道理。
时间: 2024-09-30 04:48:20