java中字节流的分类都有哪些_Java------字节流和字符流(I)

本文详细介绍了Java中的字节流,包括字节流的概念、分类及其实现,例如InputStream和OutputStream作为所有字节输入流和输出流的祖先。字节流用于读写二进制数据,如.exe、.jpg文件。文章还通过示例展示了如何使用FileInputStream和FileOutputStream进行文件读写,并探讨了字节流和字符流之间的转换以及在处理汉字时的字符集编码问题。
摘要由CSDN通过智能技术生成

字节流:读写字节文件,通常使用字节流,如:二进制文件,.jpg,.mp3,.avi,.exe,.com,.dll

windows平台的执行文件:.exe,.com,.dll

字符流:读写字符文件,通常使用字符流,如:.txt,.java,.css,.doc,.html,*.xml

字节流可以读写任意文件。字符流不能读写字节文件。

字节流的概念

传输的数据单位是字节,也意味着字节流能够处理任何一种文件

字节流的组成:InputStream/OutputStream

以 Stream 结尾的是字节流,字节流只能处理字节流

以 Writer/Reader 结尾的是字符流,字符流既可以处理字符流,也可以处理字节流

字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,

而字符流在操作时使用了缓冲区,通过缓冲区再操作文件

字符流操作时使用了缓冲区,而 在关闭字符流时会强制性地将缓冲区中的内容进行输出,

但是如果程序没有关闭,则缓冲区中的内容是无法输出的,所以得出结论:

字符流使用了缓冲区,而字节流没有使用缓冲区。

流分类:

1.Java的字节流

InputStream是所有字节输入流的祖先,而 OutputStream是所有字节输出流的祖先。

2.Java的字符流

Reader是所有读取字符串输入流的祖先,而writer是所有输出字符串的祖先。

InputStream,OutputStream,Reader,writer都是抽象类。所以不能直接new

字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的,但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化。这两个之间通过 InputStreamReader,OutputStreamWriter来关联,实际上是通过byte[]和String来关联。在实际开发中出现的汉字问题实际上都是在字符流和字节流之间转化不统一而造成的。

在从字节流转化为字符流时,实际上就是byte[]转化为String时,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>