一,File类
File类位于java.io包下,用来表示文件(目录)。
File类只用于表示文件(目录)的信息(文件名称,文件大小),不能用于文件内容的访问
1,File的基本操作
package com.amazing.jdk.learn2IO_0821.FileAPI; import java.io.File; import java.io.IOException; /** * Created by yaming on 17-8-21. */ public class FileDemo { public static void main(String[] args) { //window,linux系统文件分割符不同,可以使用File.separator设置分隔符。适用window和linux File fileSeparator=new File("e:"+File.separator+"javaio"+File.separator+"test"); /** * 1,操作目录 */ File file=new File("/home/yaming/Desktop/filedemo"); //查看目录是否存在,不存在就创建 System.out.println(file.exists()); if(!file.exists()) file.mkdir(); else file.delete(); //判断是否是一个目录,如果是目录返回true.如果不是目录或目录不存在,返回false boolean flag1 = file.isDirectory(); //判断是否是一个文件 boolean flag2 = file.isFile(); /** * 操作文件 */ //判断文件是否存在 File file2=new File("/home/yaming/Desktop/日记.txt"); //不存在就创建文件 if (!file2.exists()){ try { file2.createNewFile(); } catch (IOException e) { e.printStackTrace(); } }else { file2.delete(); } /** * 常用File对象的API */ //打印file,打印的是file.toString()的内容 System.out.println(file); //目录绝对路径 System.out.println(file.getAbsoluteFile()); //打印目录最后一级的名字 System.out.println(file.getName()); //打印文件名字 System.out.println(file2.getName()); //访问父目录,目录路径 String parentPath = file.getParent(); } }
2,File类常用操作
遍历目录:
package com.amazing.jdk.learn2IO_0821.FileAPI; import java.io.File; import java.io.IOException; /** * Created by yaming on 19-5-4. */ public class FileUtils { /** * 列出指定目录下(包括子目录)的所有文件 * @param dir * @throws IOException */ public static void listDirectory(File dir)throws IOException{ if(!dir.exists()){ throw new IllegalArgumentException("目录不存在"); } if (!dir.isDirectory()){ throw new IllegalArgumentException(dir+"不是目录"); } File[] files = dir.listFiles();//返回的是直接子目录(文件)的抽象 if (files != null && files.length >0){ for (File file : files){ if (file.isDirectory()){ //递归 listDirectory(file); }else { System.out.println(file); } } } } }