IO流的概念
先了解IO是啥,IO是两个Input和Output单词的缩写,表示输入输出的意思。而流(Stream)的概念起源于UNIX中管道(pipe)的概念,在UNIX中管道(pipe)是一条不间断的字节流,它是一个数据传输的管道,用来实现程序或进程间的通信,或读写外围设备、外部文件等。Java IO流就是java程序进行数据传输的管道。
流的分类
java中的流可以从不同的角度进行分类
1. 按数据流的方向不同:输入流,输出流。
2. 按处理数据单位不同:字节流,字符流。
1)字节流(InputStream,OutputStream):数据流中最小的数据单元是字节。
2)字符流(Reader,Writer):数据流中最小的数据单元是字符, Java中的字符是Unicode编码,一个字符占用两个字节。
3. 按功能不同:节点流,处理流。
1)程序用于直接操作目标设备所对应的类叫节点流。
2)程序通过一个间接流类去调用节点流类,以达到更加灵活方便地读写各种类型的数据,这个间接流类就是处理流。
java流类图结构
File类的使用
Java IO流也是java中文件进行读写基础知识。 java中将所有的东西都看成一个对象,那么文件也是一个对象,java中File类就是表示文件(目录)的。
java.io.File类可以对文件(目录)进行操作的类,只能对文件本身进行操作,不能对文件内容进行操作。
File类只用于表示文件(目录)的信息(名称,大小等),但不不能用于文件内容的访问。File类定义了一些与平台无关的操作方法,如:删除文件、创建文件、重命名等。
File类Api操作
package xiana; import java.io.File; import java.io.IOException; public class FileClass { public static void main(String[] args) throws IOException { //创建一个File实例 构造方法中传递文件目录路径 File file = new File("/tmp/file.txt"); File file1 = new File("/tmp"+File.separator+"file1.txt"); //File.separator可以根据当前系统设置分隔符 //exists判断文件是否存在 System.out.println(file.exists()); if (!file.exists()) { file.mkdir();//mkdir()创建指定目录 }else { //delete删除路径目录 file.delete(); } //判断文件是否存在 if (!file1.exists()){ //创建一个文件 file1.createNewFile(); }else { //也可删除文件 file1.delete(); } //判断是否是一个目录 System.out.println(file.isDirectory()); //判断是否是一个文件 System.out.println(file.isFile()); //常用的File对象的API System.out.println(file);//file.toString()的内容,这里显示的是目录名 //显示抽象文件路径名 System.out.println(file.getAbsolutePath()); //获取文件名字 System.out.println(file.getName()); //返回父目录路径 System.out.println(file.getParent()); } }
运行结果
File类遍历目录