IO 中常用的类和接口 :
- java.io.File io中唯一一个代表文件的类;
- IntputStream 字节输入流,抽象类;
- OutputStream 字节输入流,抽象类;
- Writer 字符输入流,抽象类;
- Reader 字节输出流,抽象类;
File类
File类是java.io包中唯一代表磁盘本身的对象。file类提供了与平台无关的方法来操作文件,可以对文件进行创建、删除、重命名、判断是否可读。。。等等。
File 的操作
获取对文件名相关的方法:
- String getName():返回此File对象所表示的文件名或路径名(如果是路径,则返回最后一级子路径名)
- String getPath():返回此File对象所对应的路径名
- String getAbsolutePath():返回此File对象所对应的绝对路径名
- File getAbsoluteFile():返回此File对象的绝对路径
- String getParent():返回此File对象所对应目录的父目录名
获取文件相关的方法:
- boolean exists():判断File对象所对应的文件或目录是否存在
- boolean canWrite():判断File对象所对应的文件是否可写
- boolean canRead():判断File对象所对应的文件是否可读
- boolean canExecute():判断File对象所对应的文件是否执行
- boolean isDirectory():判断File对象所对应的文件是否是目录
- boolean isAbsolute():判断File对象所对应的文件或目录是否是绝对路径
- boolean isFile(): 判断File对象对应的文件是否真的为文件
获取文件的常规操作信息:
- long lastModified():返回文件的最后修改时间
- long length():返回文件内容的长度
- URL toURL():获取文件路径URL后的路径名
目录操作的方法:
- boolean mkdir():创建一个File对象所对应的目录,如果创建成功返回true,否则返回false
- String[] list():列出File对象的所有子文件名和路径名,返回String数组
- File[] listFiles():列出File对象的所有子文件和路径,返回File数组
- static File[] listRoots():列出系统所有根路径
文件操作的方法
- boolean createNewFile():当File对象所对应的文件不存在时,创建一个File对象所指定的新文件,如果创建成功则返回true,否则返回false
- boolean delete():删除File对象所对应的文件或路径
- static File createTempFile(String prefix, String suffix, File directory):在指定的File目录下创建一个临时的空文件,使用给定前缀、系统生成的随机数和给定后缀作为文件名,如果没有传入File目录对象,则默认在临时文件目录创建临时文件
- void deleteOnExit():File对象会在JVM退出时删除所指定的文件或目录
- boolean renameTo(File dest):重命名此File对象所对应的文件或目录,如果命名成功则返回true,否则返回false
下面是写了一点测试的代码并不全:
1 public static void main(String[] args) { 2 String fileName = "D:\File"; 3 File file = new File(fileName); 4 5 if (file.exists() && file.isDirectory()) // 判断路径指向的文件/文件夹是否存在、是否目录 6 { 7 System.out.println("file是一个文件夹 "); 8 9 File[] files = file.listFiles(); // 获取目录下的所有文件/文件夹(仅该层路径下) 10 System.out.print("路径下有文件:"); 11 for (File f : files) 12 { 13 System.out.print(f + " "); 14 } 15 System.out.println(); 16 17 //获取对文件的操作 18 System.out.println("files[0]的文件名:" + files[0].getName()); // 获取文件名、文件夹名 19 System.out.println("files[0]的文件路径:" + files[0].getPath()); // 获取文件、文件夹路径 20 System.out.println("files[0]的绝对路径:" + files[0].getAbsolutePath()); // 获取文件、文件夹绝对路径 21 System.out.println("files[0]的父文件夹名:" + files[0].getParent()); // 获取文件父目录路径 22 23 //获取文件检测相关的方法 24 System.out.println(files[0].exists() ? "files[0]的存在" : "files[0]的不存在"); // 判断文件、文件夹是否存在 25 System.out.println(files[0].canWrite() ? "files[0]的可写" : "files[0]的不可写"); // 判断文件是否可写 26 System.out.println(files[0].canRead() ? "files[0]的可读" : "files[0]的不可读"); // 判断文件是否可读 27 System.out.println(files[0].canExecute() ? "file[0]可执行" : "file[0]不可执行"); // 判断文件是否可执行 28 System.out.println(files[0].isDirectory() ? "files[0]的是目录" : "files[0]的不是目录"); // 判断文件、文件夹是不是目录 29 System.out.println(files[0].isFile() ? "files[0]的是文件" : "files[0]的不是文件"); // 判断拿文件、文件夹是不是标准文件 30 System.out.println(files[0].isAbsolute() ? "files[0]的路径名是绝对路径" : "files[0]的路径名不是绝对路径"); // 判断路径名是不是绝对路径 31 32 //获取文件的常规操作信息 33 System.out.println("files[0]的最后修改时间:" + files[0].lastModified()); // 获取文件、文件夹上一次修改时间 34 System.out.println("files[0]的大小:" + files[0].length() + " Bytes"); // 获取文件的字节数,如果是一个文件夹则这个值为0 35 System.out.println("files[0]的路径转换为URI:" + files[0].toURI()); // 获取文件路径URI后的路径名 36 37 38 /** 39 * 目录操作的相关方法: 40 * boolean mkdir():创建一个File对象所对应的目录,如果创建成功返回true,否则返回false 41 * String[] list():列出File对象的所有子文件名和路径名,返回String数组 42 * File[] listFiles():列出File对象的所有子文件和路径,返回File数组 43 * static File[] listRoots():列出系统所有根路径 44 */ 45 46 /** 47 * 文件的操作方法: 48 * boolean createNewFile():当File对象所对应的文件不存在时,创建一个File对象所指定的新文件,如果创建成功则返回true,否则返回false 49 * static File createTempFile(String prefix, String suffix, File directory):在指定的File目录下创建一个临时的空文件,使用给定前缀、系统生成的随机数和给定后缀作为文件名,如果没有传入File目录对象,则默认在临时文件目录创建临时文件 50 * boolean renameTo(File dest):重命名此File对象所对应的文件或目录,如果命名成功则返回true,否则返回false 51 * boolean delete(); 删除执行的文件夹 文件夹 52 * void deleteOnExit(); 当虚拟机终止的时候删除指定的文件夹或者文件 53 */ 54 55 if (files[0].exists()) 56 files[0].delete(); // 删除指定的文件、文件夹 57 if (files[1].exists()) 58 files[1].deleteOnExit(); // 当虚拟机终止时删除指定的文件、文件夹 59 } 60 }