侧边栏壁纸
博主头像
Hello石狐

平凡的日子里,也要习惯记录

  • 累计撰写 18 篇文章
  • 累计创建 4 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

Java I/O流复习笔记

石狐
2026-03-05 / 0 评论 / 0 点赞 / 2 阅读 / 0 字

流是指数据的流动,在计算机中每时每刻都有大量的数据需要处理,外部硬盘数据的读写,网络的请求和响应都是数据在流动的体现,流的本质就是数据传输,根据数据的流向,数据流向中央处理器的叫“输入流”,反之称为”输出流“,I/O指的就是输入(input)和输出(output)

在Java语言中,对I/O流封装成了对象,流根据数据类型不同分为了两大分类:字节流 和字符流,每个分类下面再细分为输入和输出流

1.字节流

字节流以字节(8bit)为单位,读到一个字节返回一个字节,包含两个抽象类InputStream(输入流)和OutputStream(输出流)

InputStream类提供了一组read方法,负责将文件的读取

//这个方法返回一个字节的数据,但是用int装着,当返回-1是表示读取完毕
public abstract int read() throws IOException;
//这个方法会填充一组字节数据到入参的字节数组,当返回-1是表示读取完毕,off表示从那个位置填充,len表示填充多少个字符
public int read(byte b[], int off, int len) throws IOException
//这个方法调用了前一个方法,默认从0位置填充,填满整个数组长度
public int read(byte b[]) throws IOException

2.字符流

字符是以字符为单位,字符的大小根据编码集相关,不同的编码集所占的长度不一样,字符流与字节流差异在于,字符流要经过字符编码将字节翻译成字符再返回数据,适用于文本类型的数据,例如txt,xml,json,包含两个抽象类Reader,Writer

字节流是万能流可以处理所有数据,如果涉及编码的文本数据则需要手动处理字符转义问题,所以文本处理推荐用字符流

0

评论区