JAVA学习【知】IO(一)

                   IO

IO:输入输出流.是用来读写数据的,IO流相当于一个管道,只不过这个管道的两头分别是数据源和程序。

 

我们查看API后 知道了 输入输出流在IO这个包里,所以我们统称IO。

 

输入输出流的分类:

按数据流方向:输入流 和输出流

按处理书籍的单位: 字节流和字符流

按功能: 节点流和处理流

 

什么是节点流和处理流?

 

答:节点流:从特定的地方读写的流类,例如:磁盘或一块内存区域。
        处理流:使用节点流作为输入或输出。是使用一个已经存在的输入流或输出流连接创建的。

 

四种抽象流类型:

 

 

字节流

字符流

输入流

Inputstream

Reader

输出流

 Outputstream

Writer

 

在IO这个包里的类 凡是以InputStream 结尾的都继承于它

                                   凡是以OutputStream 结尾的都继承于它

 

                                    同理 Reader,Writer的子类也继承于他 

 

字节流与字符流有什么区别?

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

在从字节流转化为字符流时,实际上就是byte[]转化为String时,
public String(byte bytes[], String charsetName)
有一个关键的参数字符集编码,通常我们都省略了,那系统就用操作系统的lang
而在字符流转化为字节流时,实际上是String转化为byte[]时,
byte[] String.getBytes(String charsetName)
也是一样的道理

至于java.io中还出现了许多其他的流,按主要是为了提高性能和使用方便,
如BufferedInputStream,PipedInputStream等

 

本节只对IO大概的介绍下,具体的一些类如何用 将会在下节介绍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值