Java面试知识点(四十)I/O 基本概念

1.I/O 框架图

在这里插入图片描述

2.比特Bit、字节Byte、字符Char

  • Bit 最小的二进制单位 ,是计算机的操作部分 取值 0 或者 1
  • Byte 是计算机操作数据的最小单位由 8 位 bit 组成 取值(-128-127)
  • Char 是用户的可读写的最小单位,在 Java 里面由 16 位 bit 组成 取值(0-65535)

3.java中流的种类

  • 字符流和字节流。

所有的字节流都继承自 inputStream 和 OutputStream,

所有的字符流继承自 Reader 和 Writer。

  • 节点流和处理流

节点流:直接与数据源相连,用于输入或者输出

处理流:在节点流的基础上对之进行加工,进行一些功能的扩展

4.字符流和字节流的区别

  • 要把一片二进制数据数据逐一输出到某个设备中,或者从某个设备中逐一读取一片二进制数据,不管输入输出设备是什么,我们要用统一的方式来完成这些操作,用一种抽象的方式进行描述,这个抽象描述方式起名为 IO 流,对应的抽象类为 OutputStream 和 InputStream ,不同的实现类就代表不同的输入和输出设备,它们都是针对字节进行操作的。

  • 在应用中,经常要完全是字符的一段文本输出去或读进来,用字节流可以吗?
    计算机中的一切最终都是二进制的字节形式存在。对于 “中国” 这些字符,首先要得到其对应的字节,然后将字节写入到输出流。读取时,首先读到的是字节,可是我们要把它显示为字符,我们需要将字节转换成字符。由于这样的需求很广泛,人家专门提供了字符流的包装类。

  • 底层设备永远只接受字节数据,有时候要写字符串到底层设备,需要将字符串转成字节再进行写入。字符流是字节流的包装,字符流则是直接接受字符串,它内部将串转成字节,再写入底层设备,这为我们向 IO 设别写入或读取字符串提供了一点点方便。

5.常用流的应用场景

  • 对字节流进行大量的从硬盘读取
    使用BufferedInputStream
    使用缓冲流能够减少对硬盘的损伤

  • 打印出不同类型的数据到数据源
    Printwriter 可以打印各种数据类型
    也就是常用的System.out.println()

  • 把我们控制台的输出改成输出到一个文件里面
    SetOut(printWriter,printStream)重定向

  • 基本类型数据和字符串按顺序输出和输入
    使用 DataInputStream DataOutputStream

  • 将字节流转换为字符流
    InputStreamReader 类是从字节流到字符流的桥接器:它使用指定的字符集读取字节并将它们解码为字符。 它使用的字符集可以通过名称指定,也可以明确指定,或者可以接受平台的默认字符集。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值