流的概念
在程序中所有的数据都是以流的方式进行传输或保存的,程序中需要数据的时候就用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。
程序中的输入输出都是以流的形式保存的,流中保存的实际上全部是字节文件。
字节流和字符流
在java.io包中操作文件内容的主要有两大类:字节流和字符流,两类都分为输入和输出操作。在字节流中输出数据主要是使用OutputStream完成,输入使用InputStream,在字符流中输出主要是使用Writer类完成,输入主要是使用Reader类完成。
内容操作一共四个类:OutputStream、InputStream、Writer、Reader
操作流程:
在JAVA中IO操作也是有相应步骤的,以文件操作为例,主要操作流程如下:
A、使用File类打开一个文件
B、通过字节流或字符流的子类,指定输出的位置。
C、进行读/写操作
D、关闭输入/输出
使用File类操作的时候一定要有路径的问题,注意分隔符。
实际上四个操作类都是抽象类
IO操作属于资源操作,对于资源操作,操作的最后必须关闭,否则就有可能出现未知的错误。
字节流
字节流主要是操作byte类型的数据,以byte数组为准,主要操作类是OutputStream、InputStream
字节输出流:OutputStream
字节输入流:InputStream
Byte是字节,肯定使用字节流操作。所有的数据基本上都可以直接使用byte数组表示出来。
字节输出流OutputStream
OutputStream是整个io包中字节输出流的最大父类,此类的定义如下:
public abstract class OutputStream extends Object implements Closeable, Flushable
从以上的定义可以发现,此类是一个抽象类,如果要想使用此类的话,则首先必须通过子类实例化对象,那么如果现在要操作的是一个文件,则可以使用:FileOutputStream类。通过向上转型之后,可以为OutputStream实例化。
Closeable表示可以关闭的操作,因为程序运行到最后肯定要关闭。
Flushable接口表示刷新,清空内存中的数据。
OutputStream类的常用方法:
1、public void close() throws IOEx