字节流和字符流
了解字节流和字符流之前我们先了解什么是流:
什么是流
Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列。和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序列的对象被称为输入流;能够向其写入一个字节序列的对象被称为输出流。
1.字节流
一切皆为字节:
一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此。所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终为二进制数据。
Java中的字节流处理的最基本单位为单个字节,它通常用来处理二进制数据。Java中最基本的两个字节流类是InputStream和OutputStream,它们分别代表了组基本的输入字节流和输出字节流。InputStream类与OutputStream类均为抽象类,我们在实际使用中通常使用Java类库中提供的它们的一系列子类。
FilterInputStream: 包含其他一些输入流,能够对读取的文件进行操作
构造方法:
FilterInputStream(InputStream in): 创建一个读取文件的对象,并告诉该对象要操作的文件是谁, 可以直接new FIle对象
常用方法:
read(): 从此输入流中读取下一个数据字节。
read(byte[] b) : 从此输入流一次性读取指定容器的数据
close():关闭资源
OutputStream:
字节输出流,它也是超类&#