Java IO使用简略说明,字节流向字符的转换

这里只说明一些字节流和字符流的的使用和区别


1.输入流和输出流的区分

很简单就是针对程序内存而言,就是也内存为参照物,将数据从外设(磁盘、缓冲区、管道)向程序内存读,就是输入流(input);将程序内存中的数据写入到外设中,就是输出流。

 

2.字节流与字符的转换

很简单,就是生成一个字节数组bytes,然后使用字节流的read方法,将数据读取到数组中,然后new String(bytes) ,得到的String对象就是读取到的字节流。字符转为字节之后用String的getBytes方法就行,得到字节数组就可以像outputStream中写了。

 

3.InputStream & OutputStream

这两个是最基本的IO流,数据都是以字节流的形式传输的,没有缓存,比如OutputStream就是直接向管道中写入数据,注意这是对字节流进行操作,所以写入、读取的数据都是字节流。

 

4.BufferedInputStream & BufferedOutputStream

这个就是比上面的IO流多了一个最主要的特性,缓存区,这里outputStream使用write方法将字节数组写入到管道中,不是直接写入,而是先写入到buf中,直到buf写满了,才会将数据写到管道中,这里的buf默认大小是8*1024,如果要buf中的数据没达到也写入到管道中,我们就要在调用write方法之后再调用flush方法,强制将buffer中的数据写入到管道中。同样也是针对字节流。相比于第三点中的IO流而言,多了一个缓存区,我们就可以对这个缓冲区的数据进行操作了,而不是像原来一样,直接把字节流向管道中写。

 

5.InputStreamReader & OutputStreamWriter

这个与上面的将的带缓冲区的字节流类似,不过这个是借助的字符数组读取数据,可以直接写入字符串,这个个IO字符流也拥有自己的缓存区,所以write之后要想立即写入还是要进行flush操作。默认8*1024,针对的是字符流

 

6.BufferedWriter BufferedReader

与第5点的IO流差不多,但是它比上面的要高效很多,上面的主要作用就是实现字符流与字节流之间的转化。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值