第八章 :IO(输入输出)

本文详细介绍了Java中的IO流,包括字节流和字符流的区别,以及按照数据传输方向的输入流和输出流。重点讲解了InputStream、OutputStream、Reader、Writer四大基类,以及BufferedInputStream、BufferedOutputStream、BufferedReader和BufferedWriter等缓冲流的使用。此外,还提到了对象序列化与反序列化的ObjectInputStream和ObjectOutputStream,以及标准输入输出流、管道流、字节数组流和字符数组流的应用。最后,讨论了File类、RandomAccessFile和字符编码的相关知识。
摘要由CSDN通过智能技术生成

IO流有很多种,按照操作数据的不同,可以分为字节流和字符流,按照数据传输方向的不同又可分为输入流和输出流,程序从输入流中读取数据,向输出流中写入数据,在IO包中,字节流的输入输出流分别用java.io.InputStream和java.io.outputStream表示,字符流的输入输出流分别用java.io.reader和java.io.writer表示。

8.1字节流的概念

8.1.1字节流的概念

IO流中针对字节的输入输出提供了一系列的流,统称为字节流。字节流是程序中最常用的流,根据数据的传输方向可将其分为字节输入流和字节输出流。

InputStream的常用方法:

int read()//从输入流读取一个8位的字节,把它转换为0~255之间的整数,并返回这一整数


int read(byte[]b)//从输入流读取若干字节,把它们保存到参数b指定的字节数组中,返回的整数表示读取字节数

int read(byte[]b,int off,int len)//从输入流读取若干字节,把它们保存到参数指定的字节数组中,off指定字节数组开始保存数据的起始下标,len表示读取的字节数目。

void close()//关闭此输入流并释放与该流关联的所有系统资源。

outputStream的常用方法

void write(int b)//向输出流写入一个字节

void write(byte[]b)//把参数b指定的字节数组的所有字节写到输出流。

void write(byte[]b,int off,int len)//将指定byte数组中从偏移量off开始的len个字节写入输出流。

void flush()//刷新此输出流并强制写出所有缓冲的输出字节。

void close()//关闭此输出流并释放与此相关的所有系统资源。

8.1.6字节缓冲流

在IO包中提供两个带缓冲的字节流,分别是BufferedInputStream和BufferdOutputaStream。这两个流都使用了装饰设计模式。它们的构造方法中分别接收InputStream和OutputaStream类型的参数作为被包装对象,在读写数据时提供缓冲功能。

8.2.2字符流操作文件

在程序开发中,经常需要对文本文件的内容进行读取,如果想从文件中直接读取字符便可以使用字符输入流fileReader,通过此流可以从关联的文件中读取一个或一组字符。

8.2.3LineNumberReader

Java程序在编译或运行期间经常会出现一些错误,在错误中通常会报告出错的行号,为了方便查找错误,需要在代码中加入行号。LineNumberReader它是BufferedReader的直接子类。

8.2.4转换流

有时字节流和字符流之间也需要进行转换,将字节流

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值