Java io流

io流根据数据流向不同分为输入流和输出流,读写操作的执行是以程序为主体来说的,对输入流(即从别的地方来的输入),程序执行读操作,对输出流(输出到别的地方),程序执行写操作,记住四个字“读入写出”。

根据功能的不同分为节点流和处理流,节点流是直接从一个源读写数据的流,如FileInputStream是一个节点流,可以直接从文件读取数据;处理流是在对节点流封装的基础上的一种流,如BufferedInputStream可以包装FileInputStream,使得其有缓冲功能。

根据处理数据类型不同分为字节流和字符流。

字节流:读取单位是字节(1byte=8bit),可以处理任意类型的数据(包括图片,avi),字节流操作是对文件本身的操作,不会用到缓冲区

字符流:读取单位是字符(1char=2byte),只能处理字符类型的数据,字符流是通过缓冲区间接对文件进行操作。

不管流的分类是多么的丰富和复杂,其根源来自于四个基本的类

1输入字节流InputStream

InputStream 是所有的输入字节流的父类,它是一个抽象类。ByteArrayInputStream、StringBufferInputStream、FileInputStream 是三种基本的介质流,它们分别从Byte 数组、StringBuffer、和本地文件中读取数据。

2输出字节流OutputStream

OutputStream 是所有的输出字节流的父类,它是一个抽象类。

3字符输入流reader

4字符输出流writer

字符流和字节流的转换:

从字节流到字符流:InputStreamReader、OutputStreamWriter类可以实现。

从字符流到字节流:可以从字符流中获取char[]数组,转换为String,然后调用String的API函数getBytes() 获取到byte[],然后就可以通过ByteArrayInputStream、ByteArrayOutputStream来实现到字节流的转换。

看一句代码:

BufferedReader in = new BufferedReader(new InputStreamReader(server.getInputStream()));

其中绿色部分为一个字节流,红色部分作用就是将字节流转换为字符流,黄色部分就是能让你一次性读取多个字符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值