io流

流的概念

在Java中,所有的数据都是使用流来编写的,流是一组有顺序,有起点,有终点的字节集合。流的本质是数据传输。

  • 按照流向分:输入流,输出流
  • 按照处理数据的单位分:字节流,字符流

Java io类图:
图片来源网络

字节流

FileInputStream类
FileInputStream是文件输入流,用于从文件中读出数据。

  • FileInputStream(File file):通过打开与实际文件的连接创建一个FileInputStream,该文件由文件系统中的 File 对象 file 命名。
  • FileInputStream(String name):通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件系统中的路径名 name 命名。

文件输出流是用于将数据写入到输出流 File 或一个 FileDescriptor 。 文件是否可用或可能被创建取决于底层平台。
特别是某些平台允许一次只能打开一个文件来写入一个 FileOutputStream (或其他文件写入对象)。 在这种情况下,如果所涉及的文件已经打开,则此类中的构造函数将失败。

FileOutputStream类
FileOutputStream是文件输出流,用于将数据写出到文件。

  • FileOutputStream(File file):创建文件输出流以写入由指定的 File 对象表示的文件。

  • FileOutputStream(String name): 创建文件输出流以指定名称写入文件。

创建字节输出流对象都做了三件事情:

  • 调用系统功能去创建文件
  • 创建outputStream对象
  • 把outputStream对象指向这个文件

字节缓冲流

缓冲流的作用:
先将要读写的数据缓冲起来,然后然后一起进行读写操作,有利于提高效率。

  • BufferedInputStream(InputStream in):创建一个 BufferedInputStream
    并保存其参数,输入流 in ,供以后使用。
  • BufferedInputStream(InputStream in, int size) :创建 BufferedInputStream
    具有指定缓冲区大小,并保存其参数,输入流 in ,供以后使用。
  • BufferedOutputStream(OutputStream out):创建一个新的缓冲输出流,以将数据写入指定的底层输出
  • BufferedOutputStream(OutputStream out, int
    size):创建一个新的缓冲输出流,以便以指定的缓冲区大小将数据写入指定的底层输出流

字符流

  • FileReader(File file): 创建一个新的 FileReader ,给出 File 读取。
  • FileReader(String fileName) :创建一个新的 FileReader ,给定要读取的文件的名称。

若是从文件中读取内容,可以直接使用FileReader子类

  • FileWriter(File file): 给一个File对象构造一个FileWriter对象。
  • FileWriter(String fileName) :构造一个给定文件名的FileWriter对象。

如果是向文件中写入内容,可以直接使用FileWriter子类

字符缓冲流和字节缓冲流类似

字符流和字节流的对比

  1. 字节流的操作基本单元是字节;字符流的操作基本单元是Unicode码元
  2. 字节流在操作时本身不会用到缓冲区,与文件直接操作;字符流在操作时会主动用到缓冲区。
  3. 字节流操作中,即使没有关闭(close方法),也能输出;字符流如果不使用clos方法则无输出。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值