File类
/* java.io.File类 文件和目录轮径的抽象形式 java把电脑种的文件和文件夹,封装为一个file类,我们可以使用file类对文件和文件夹进行曹祖 使用File类的方法 创建一个文件/文件夹 删除文件/文件夹 获取文件/文件夹 判断文件夹/文件是否存在 对文件夹进行遍历 获取文件的大小 File类是一个于系统无关的类,任何操作系统都可以使用这个类中的方法 重点: file:文件 directory 文件夹/目录 path:路径 灵活写路径: "C:"+File.separator+"quan"+File.separator+“config.com" */
import java.io.File; public class DemoFile { public static void main(String[] args) { /* static String pathSeparator 与系统相关的路径分隔符字符,为方便起见,表示为字符串。 static String separator 与系统相关的默认名称 - 分隔符字符,以方便的方式表示为字符串。 */ String pathSeparator = File.pathSeparator; System.out.println(pathSeparator);//路径分隔符 win; linux: String sepatator = File.separator; System.out.println(sepatator);// 结果\ 文件名称分隔符 win\ linux / } }
绝对路径,相对路径:
/* 路径: 绝对路径:一个完整的路径 C:\\Users\\quan\\Desktop\\untitled1\\src\\quan\\File\\Demo2.java 相对路径:一个简化的路径 src\\quan\\File\\Demo2.java 相对路径指当前项目的根目录 注意: 路径是不区分大小写的 路径中的文件名称分割符window使用反斜杠,反斜杠是转移字符,所以需要两个 */
FIle类的三种构造方法:
11111
/* File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。 string pathname 字符串路径名称 可以以文件结尾,也可以以文件夹结尾 可以相对路径,可以绝对路径 路径可以存在,也可以不存在 创建file对象,只把字符串路径封装为FIle对象,不考虑路径的真假情况 */
public static void show01(){ File f1 = new File("C:\\Users\\quan\\Desktop\\untitled1\\src\\quan\\File\\Demo2.text"); System.out.println(f1); /* //结果:C:\Users\\quan\\Desktop\\untitled1\\src\\quan\\File\Demo2.text //重写了Object toString方法 / */ File f2 = new File("C:\\Users\\quan\\Desktop\\untitled1\\src\\quan\\File"); System.out.println(f2); File f3 = new File("src\\quan\\File\\Demo2.java"); System.out.println(f3); }
22222
/* File(String parent, String child) 从父路径名字符串和子路径名字符串创建新的 File实例 更加灵活使用 */
public static void show2 (String parent,String child){ File file = new File(parent,child); }
3333
/* File(File parent, String child) 从父抽象路径名和子路径名字符串创建新的 File实例。 注意父路径的类型为FIle,可以使用file方法对路径进行一些操作,在使用路径创建对象 */
public static void show3(){ File parent = new File("c:\\"); File file = new File(parent,"quan.txt"); System.out.println(file);//c:\quan.txt }
常用方法
获取的方法
11111
/* public String getAbsolutePath(),返回次File的绝对路径字符串 获取构造方法总传递的路径 无论路径是绝对路径还是相对路径,都是返回绝对路径 */
public static void show1 (){ File f1 = new File(" C:\\Users\\quan\\Desktop\\untitled1\\src\\quan\\File\\Demo2.java"); String str1 = f1.getAbsolutePath(); System.out.println(str1); File f2 = new File("src\\quan\\File\\Demo2.java"); String str2 = f2.getAbsolutePath(); System.out.println(str2); } /* 放回置: C:\Users\quan\Desktop\untitled1\src\quan\File\Demo2.java C:\Users\quan\Desktop\untitled1\src\quan\File\Demo2.java */
22222
/* public String getPath()获取构造的方法,返回原始的路径字符串,是什么样就是什么样 toString方法的重写就是使用gePath去实现 */
public static void show2(){ File f1 = new File(" C:\\Users\\quan\\Desktop\\untitled1\\src\\quan\\File\\Demo2.java"); File f2 = new File("src\\quan\\File\\Demo2.java"); String s1 = f1.getPath(); String s2 = f2.getPath(); System.out.println(s1); System.out.println(s2); System.out.println(f1.toString()); } /* C:\Users\quan\Desktop\untitled1\src\quan\File\Demo2.java src\quan\File\Demo2.java */
3333
/* public Sting getName:返回构造方法中的论据字符串的结尾部分,可文件可目录 */
public static void show3(){ File f1 = new File(" C:\\Users\\quan\\Desktop\\untitled1\\src\\quan\\File\\Demo2.java"); File f2 = new File("src\\quan\\File\\Demo2.java"); String s1 = f1.getName(); String s2 = f1.getName(); System.out.println(s1); System.out.println(s2); }
4444
/* public Long length():返回文件的长度: 注意: 亿字节为单位 文件夹是没有大小概念的,不能获取文件夹的大小 如果构造方法中的路径不存在,那里length方法返回0 */
public static void show4(){ File f1 = new File("C:\\Users\\quan\\Desktop\\交给辅导员\\宿舍人员合照\\大二2.jpg"); //不存在的文件 File f2 = new File("C:\\Users\\quan\\Desktop\\untitled1\\src\\quan\\File\\Demo2.text"); //文件夹 File f3 = new File("C:\\Users\\quan\\Desktop\\All\\Java-done"); Long le1 = f1.length(); Long le2 = f2.length(); Long le3 = f3.length(); System.out.println(le1); System.out.println(le2); System.out.println(le3); } /* 1139179 0 0 */
判断功能
/* public boolean exists():此file表示文件或目录是否实际存在 public boolean isDirectory() 此file表示的是否是目录 public boolean isFile()此File表示是否为文件 */
public static void show01(){ File f1 = new File("C:\\Users\\quan\\Desktop\\untitled1\\src\\quan\\File\\Demo2.java"); System.out.println(f1.exists()); File f2 = new File("C:\\Users\\quan\\Desktop\\untitled1\\src\\quan\\File\\Demo2.text"); System.out.println(f2.exists()); File f3 = new File("untitled1.iml");//以项目根目录src System.out.println(f3.exists()); } /* true false true */
/* public boolean isDirectory() 此file表示的是否是目录 判断构造方法给定的路径是否以文件结尾 public boolean isFile()此File表示是否为文件 注意:这两个方法互斥,且路径必须存在,否则都返回false */
public static void show02(){ File f1 = new File("C:\\Users\\quan\\Desktop\\untitled1\\src\\quan\\File\\Demo2.java"); System.out.println(f1.isDirectory()); System.out.println(f1.isFile()); File f2 = new File("C:\\Users\\quan\\Desktop\\untitled1\\src\\quan\\File\\Demo2.text"); //判断是文件还是文件夹的时候最好先判断是否存在 if (f2.exists()){ System.out.println(f2.isFile()); } } /* false true */
创建删除功能的方法
/* public boolean createNewFile(): 当且仅当具有改名称的文件不存在时,创建一个新的空文件 创建文件的路径何名称在FIle的构造方法中给出 返回:true:文件不存在,创建文件,返回true false 文件存在,不会创建,返回false 注意: 此方法只能创建文件,不能创建文件夹 创建文件的路径必须存在,否则会抛出异常 这个方法本来声明抛出了IOException,我们调用这个方法,就必须处理这个异常 要么trows,要么trycatch */
public static void show() throws IOException { File f1 = new File("C:\\Users\\quan\\Desktop\\untitled1\\src\\quan\\File\\Demo2.text"); boolean b1 = f1.createNewFile();//会出现IO异常 System.out.println(b1); File f2 = new File("src\\quan\\File\\Demo3.text");//这个才是相对这个项目的相对路径 boolean b2 = f2.createNewFile();//会出现IO异常 System.out.println(b2); } }
/* public boolean mkdir():创建FIle表示的目录,只能创建单极文件夹 public boolean mkdirs():创建此File表示目录,包括任何必须但不存在的目录 返回:true:文件夹不存在,创建文件,返回true false 文件夹存在,不会创建,返回false,构造方法给出的路径不存在,返回false */
public static void show1(){ File f1 = new File("C:\\Users\\quan\\Desktop\\untitled1\\src\\quan\\File\\QQQ2"); boolean b1 = f1.mkdir();//会出现IO异常 System.out.println(b1); File f2 = new File("C:\\Users\\quan\\Desktop\\untitled1\\src\\quan\\File\\111\\2222\\3"); boolean b2 = f2.mkdirs();//会出现IO异常 System.out.println(b2); }
/* public boolean delete() 删除由FIle表示的问题件或目录 此方法,可以删除构造方法路径钟给出的文件/文件夹 返回True :文件/文件夹删除成狗 false:文件夹钟由内容,不会删除返回false,构造方法路径不存在fasle 注意: delete方法是直接在硬盘上删除,不经过回收站 */
public static void show2(){ File f1 = new File("C:\\Users\\quan\\Desktop\\untitled1\\src\\quan\\File\\QQQ2"); boolean b1 = f1.delete(); System.out.println(b1); File f2 = new File("C:\\Users\\quan\\Desktop\\untitled1\\src\\quan\\File\\111\\2222\\3"); boolean b2 = f2.delete(); System.out.println(b2); }
目录的遍历
public static void show2(){ File f1 = new File("C:\\Users\\quan\\Desktop\\untitled1\\src\\quan\\File"); String[] b1 = f1.list(); for (String name:b1 ) { System.out.print(name+" "); //111 CreateDelete.java Demo2.java Demo2.text Demo3.java Demo3.text Demo4.java DemoFile.java QQQ } }
public static void show2(){ File f1 = new File("C:\\Users\\quan\\Desktop\\untitled1\\src\\quan\\File"); File[] b1 = f1.listFiles(); for (File name:b1 ) { System.out.println(name); } /* C:\Users\quan\Desktop\untitled1\src\quan\File\111 C:\Users\quan\Desktop\untitled1\src\quan\File\CreateDelete.java C:\Users\quan\Desktop\untitled1\src\quan\File\Demo2.java C:\Users\quan\Desktop\untitled1\src\quan\File\Demo2.text C:\Users\quan\Desktop\untitled1\src\quan\File\Demo3.java C:\Users\quan\Desktop\untitled1\src\quan\File\Demo3.text C:\Users\quan\Desktop\untitled1\src\quan\File\Demo4.java C:\Users\quan\Desktop\untitled1\src\quan\File\DemoFile.java C:\Users\quan\Desktop\untitled1\src\quan\File\QQQ */ }
原文:https://www.cnblogs.com/java-quan/p/13062733.html