File
file:文件和路径名的抽象表示形式。也就是指的一个联系,Java程序和硬盘上的资源的一种联系
两个常用常量:
* 1、路径分隔符 ;
* 2、文件分隔符
相对路径:
绝对路径:
String relativePath = "src/main/resources/mybatis-config.xml"; String absolutePath = "E:CodeMybatisMybatis00_helloworldsrcmain esourcesmybatis-config.xml"
常用方法:
//文件名以及路径 public static void test1(){ String path = "F:\"; String name = "1.bmp"; File file = new File(path,name);//构造 //File file = new File("1.bmp"); System.out.println(file.getName());//文件名 System.out.println(file.getPath());//如果是绝对路径返回完整路径,否则相对路径 System.out.println(file.getAbsolutePath());//返回绝对路径 System.out.println(file.getParent());//返回上一级目录,如果没有返回空 } //是否存在 public static void test2(){ String path = "E:\Code\Base\src\Progress\IO\Files.java"; File file = new File(path); System.out.println(file.exists());//文件(或文件夹)是否存在 System.out.println(file.canWrite());//文件(或文件夹)是否可写 if (file.isFile()){ System.out.println("文件"); }else if (file.isDirectory()){ System.out.println("文件夹"); }else { System.out.println("文件不存在"); } System.out.println(file.isAbsolute());//是否为绝对路径 System.out.println(file.length());//长度——字节数(只有文件才能读出长度,文件夹不行) } //创建删除文件 public static void test3(){ String name = "F:\100.bmp"; File file = new File(name); if (!file.exists()){ try { boolean flag = file.createNewFile();//没有就创建,存在就返回false System.out.println(flag); } catch (IOException e) { e.printStackTrace(); } } //删除文件 boolean flag = file.delete(); System.out.println(flag); } public static void test4(){ String path = "F:/test"; File file = new File(path); //file.mkdir();//创建目录,必须确保父目录存在,如果不存在则会创建失败 file.mkdirs();//创建目录,如果父目录链不存在则一同创建 String paths = "F:/"; File src = new File(paths); if (src.isDirectory()){//存在并且为目录 String[] subNames = src.list();//文件或目录名字符串的形式 for (String temp:subNames) { System.out.println(temp); } System.out.println("==============="); File[] subNamesPath = src.listFiles();//子文件或子目录路径名 for (File f:subNamesPath) { System.out.println(f); } } File[] root = File.listRoots();//根路径 for (File ignored :root ) { System.out.println(ignored); } }
用法:
/** * 输出子孙级目录或文件的名称(绝对路径) * 1、listFiles() * 2、递归 */ public static void test5(){ String path = "F:/test"; File file = new File(path); printName(file); } public static void printName(File file){ if (null==file||!file.exists()){ return; } System.out.println(file.getAbsolutePath()); if(file.isDirectory()){ for (File subNames:file.listFiles()) { //System.out.println(subNames); printName(subNames); } } } }