认识Java的流

File类可以对文件或姆的属性进行操作,但是不能访问文件的内容。
即File类不能从文件中读取数据或往文件中写数据。

Java中通过流来读写文件。
  • 读文件是指把文件中的数据读取到内存中。
  • 写文件是指把内存中的数据写入到文件中。
流是指一连串流动的字符,是以先进先出的方式发送和接收数据的通道。
  • 流分为输入流和输出流

  • 输入、输出流是相对于计算机内存来说的,

    • 如果数据输入到内存中则称为输入流。
    • 如果数据从内存中输出则称为输出流。
  • 输入流主要由 InputStreamReader 作为基类

  • 输出流主要由 OutputStreamWrite 作为基类

在程序中,这些输入、输出流类的对象称为流对象。
  • 可以通过流对象将内存中的数据以流的方式写入文件
  • 可以通过流对象将文件中的数据以流的方式读取到内存
构造流对象时往往会和数据源(文件)联系起来,数据源分为源数据源和目标数据源。
  • 输入流关联的是源数据源
  • 输出流关联的是目标数据源
输入、输出流又分为字节流和字符流两种形式。
  • 字节流是8位通用字节流,基本单位是字节
    • 字节流的基类是 InputStream 类和 OutputStream 类,皆为抽象类
  • 字符流是16位 Unicode 字符流,基本单位是 Unicode 字符
    • 字符流的基类是 Reader 类和 Writer
    • 字符流最时候用来处理字符串和文本,因为它们支持国际上大多数的字符集和语言
InputStream类的常用方法
  1. int read() : 从输入流中读取下一个字节数据
  2. int read(byte[] b) :
    • 从输入流中读取数据
    • 并将数据存储在缓冲区数组b中
    • 返回实际读取的字节数
  3. int read(byte[] b,int off,int len) :
    • 从输入流中读取最多len长度的字节
    • 保存到字节数组b中
    • 保存的位置从off开始
  4. void close() : 关闭输入流

InputStream类的常用子类有FileInputStream,用于从文件中读取数据

OutputStream类的常用方法
  1. void write(int c) : 将指定的字节数据写入此输出流中
  2. void write(byte[] buf) : 将数组buf中的所有字节写入此输出流中
  3. void write(byte[] b,int off,int len):
    • 将字节数组b中从偏移量off开始的长度为len的字节数据输出到输出流中
  4. void close() : 关闭输出流

OutputStream类的常用子类为FileOutputStream,用于向文件写数据

Reader类的常用方法
  1. int read() : 从输入流中读取单个字符,返回所读取的字符数据
  2. int read(byte[] c) :
    • 从输入流中最多读取c.length个字符
    • 保存到字符数组c中
    • 返回实际读取的字符数
  3. int read(char[] c,int off,int len)
    • 从输入流中读取最多len个字符
    • 保存到字符数组c中
    • 保存的位置从off开始
    • 返回实际读取的字符数
  4. void close() : 关闭流

Reader类的常用子类为BufferReader,接受Reader对象作为参数,并对其添加字符缓冲器

Write类的常用方法
  1. void write(String str) : 将str字符串里包含的字符输出到指定的输出流中
  2. void write(String str,int off,int len) :
    • 将str字符串里从off位置开始
    • 长度为len的多个字符输出到输出流中
  3. void close() :关闭输出流
  4. void flush() : 刷新输出流

Write类的常用子类为BufferWriter,用于将数据缓冲到字符输出流

注意:

在操作上字节流和字符流有一个区别:

  • 字符流在操作时使用了缓冲区(内部存储器)
  • 而字节流在操作时直接操作文件 ,不会使用缓冲区。

所有的这些方法在出现错误时,都会抛出IOExcption异常

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值