流,是指一连串流动的字符,是以先进先出的方式发送和接收数据的通道。一个流是一个输入设备或输出设备的抽象表示。可以写数据到流中,也可以从流中读取数据。可以把流想象成程序中流进或流出的一个字节序列。主要有四个抽象类:OutputStream、InputStream、Writer和Reader。
(1)按照流的流向进行划分,可分为输入流和输出流。
![](https://note.wiz.cn/unzip/def25d8b-e45e-4f65-849f-840482cf48b5/0f26362b-c61f-49c1-97a9-41b6345836b0.1535/index_files/18a67da65244bcc9e979f913d4e55cfd.png)
输入流:只能从中读取数据,而不能向其中写入数据。(硬盘——>内存)
输出流:只能向其中写入数据,而不能从中读取数据。(内存——>硬盘)
(2)按照所属操作的数据单元的不同,流又可划分为字节流和字符刘。
字节流:操作的最小数据的单元为8位的字节。(多用于二进制数据,如图片,音乐等。)
字符刘:操作的最小数据的单元为16为的字符。(多用于文本)
![](https://note.wiz.cn/unzip/def25d8b-e45e-4f65-849f-840482cf48b5/0f26362b-c61f-49c1-97a9-41b6345836b0.1535/index_files/9b402ccb2985713ae79ecb3e958a06fa.png)
使用File类操作文件和目录属性
File对象既可表示文件,也可表示目录。在程序中,一个File对象可以代表一个文件或目录。利用它可用来对文件或目录进行基本操作。
创建File对象语法
File file = new File(String pathName);
例如:File file = new File("C:\\test.txt");创建了一个指向C盘根目录下test.txt文本文件的对象。
注意:在Windows操作系统中,文件路径名中的分隔符可以用正斜杠“/”,如“C:/text.txt”也可以使用反斜杠“\”,但必须写成“\\”,其中第一个表示转义符,例如“C:\\text.txt”。
File对象是java.io包中引用磁盘文件的唯一对象。
File类的常用方法
名称 | 说明 |
boolean exists() | 判断文件或目录是否存在 |
boolean isFile() | 判断是否是文件 |
boolean isDirectory() | 判断是否是目录 |
String getPath() | 返回此对象表示的文件的相对路径名 |
String getAbsolutePath() | 返回此对象表示的文件的绝对路径名 |
String getName() | 返回此对象表示的文件或目录的名称 |
boolean delete() | 删除此对象指定的文件或目录 |
boolean createNewFile() | 创建名称的空文件,不创建文件夹 |
long length() | 返回文件的长度,单位为字节,若文件不存在,则返回0L |
常用的操作流的类:
FileInputStream和FileOutputStream以字节流的方式进行读写文本文件。
BufferedReader和BufferedWriter以字符流的方式进行读写文本文件,而且效率更高。
DataInputStream和DataOutputStream可用于读写二进制文件。
提示:文件操作流的方法不需要死记硬背,编程的时候用到相关的方法,查看API既可。