Java I/O总结

数据流是一组有序,有起点和终点的字节的数据序列。包括输入流和输出流。

  • 字节流:数据流中最小的数据单元是字节
  • 字符流:数据流中最小的数据单元是字符

主要的类:

  • File(文件特征与管理):用于文件或者目录的描述信息,例如生成新目录,修改文件名,删除文件名,判断文件所在路径等。
  • InputStream(字节流,二进制格式操作):抽象类,基于字节的输入操作,是所有输入流的父类。定义了所有输入流都具有的特征。
  • OutputStream(字节流,二进制操作):抽象类,基于字节夫的输出操作,是所有输出流的父类。冬衣了所有输出流都具有的特征。
  • Reader(字符流,文本格式操作):抽象类,基于字符的输入操作。
  • Writer(字符流,文本格式操作):抽象类,基于字符的输出操作。

InputStream为字节输入流,它本事是一个抽象类,需要其子类实现各种功能,此抽象类是表示字节输入流的所有类的超类。 继承自InputStream 的流都是向程序中输入数据的,且数据单位为字节(8bit)。
InputStream是输入字节数据用的类,所以InputStream类提供了3种重载的read方法.Inputstream类中的常用方法:

  • public abstract int read( ):读取一个byte的数据,返回值是高位补0的int类型值。若返回值=-1说明没有读取到任何字节读取工作结束。
  • public int read(byte b[ ]):读取b.length个字节的数据放到b数组中。返回值是读取的字节数。该方法实际上是调用下一个方法实现的
  • public int read(byte b[ ], int off, int len):从输入流中最多读取len个字节的数据,存放到偏移量为off的b数组中。
  • public int available( ):返回输入流中可以读取的字节数。注意:若输入阻塞,当前线程将被挂起,如果InputStream对象调用这个方法的话,它只会返回0,这个方法必须由继承InputStream类的子类对象调用才有用,
  • public long skip(long n):忽略输入流中的n个字节,返回值是实际忽略的字节数, 跳过一些字节来读取

OutputStream
OutputStream提供了3个write方法来做数据的输出,这个是和InputStream是相对应的。

  • public void write(byte b[ ]):将参数b中的字节写到输出流。
  • public void write(byte b[ ], int off, int len) :将参数b的从偏移量off开始的len个字节写到输出流。
  • public abstract void write(int b) :先将int转换为byte类型,把低字节写入到输出流中。
  • public void flush( ) : 将数据缓冲区中数据全部输出,并清空缓冲区。
  • public void close( ) : 关闭输出流并释放与流相关的系统资源。

I/O操作属于资源操作,一定要记得关闭

如何选择I/O流

1、确定是输入还是输出

  • 输入:输入流 InputStream Reader
  • 输出:输出流 OutputStream Writer

2、明确操作的数据对象是否是纯文本

  • 是:字符流 Reader,Writer
  • 否:字节流 InputStream,OutputStream

3、明确具体的设备。
文件:

  • 读:FileInputStream,, FileReader,
  • 写:FileOutputStream,FileWriter
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值