一、file类的常见方法代码列举
如果阅读的过程发现找不到的方法,就在最下面的代码部分
private static long size;
public static void main(String[] args) throws IOException {
//可以使用file类自带的常量来进行分割代替,
//每个变量都是小写的字母是因为当时是还没有进行规范化的书写(1.0的版本),
//改起来还是比较的麻烦,就一直保留了
//String path = "D:\\java_exli_project\\tast2\\src\\module-info.java";
String sr3 = "D:"+ File.separator+
"java_exli_project"+File.separator+"tast2"+File.separator+"src";
//java没遇到分号就会继续往下面进行寻找
File sr1 = new File(sr3);
System.out.println(sr3);
// URI uri = new URI(path);
//一、字符串进行构造
System.out.println("字符串进行构造");
File src1 = new File(sr3+"/module-info.java");
System.out.println(src1.length());
//二、File类+String(name)(name也可以是a/a/name)
System.out.println("二、File类+String(name)(name也可以是a/a/name)");
File src2 = new File(sr1, "module-info.java");
System.out.println(src2.length());
//三、string+string(他就是将 两个字符链接起来)
System.out.println("三、string+string(他就是将 两个字符链接起来)");
File src3 = new File(sr3, "module-info.java");
System.out.println(src3.length());
// //四、URL:
// File src4 = new File(uri);
// System.out.println(src4.length());
//从file类中去获取路径的方法
System.out.println("从file类中去获取路径的方法");
System.out.println(src3.getAbsolutePath());
System.out.println(src3.getAbsoluteFile());//调用的是toString
System.out.println(src3.isAbsolute());
File aa = src3.getAbsoluteFile();
System.out.println(aa);//getAbsolutePath()和getAbsoluteFile()的最大的区别是一个返回的是String,另一个返回的是File类
System.out.println(src3.getPath());//完整的路径,也就是存储的内容
System.out.println(src3.getName());//文件的名称
System.out.println(src1.getParent());//获取文件树的结构,并不包含文件名(这个也是叫做父路径)
System.out.println(src1.getParentFile().getParent());//获取的是一个文件的父路径的对象的name
//创建一个不存在的路径,
System.out.println("创建一个不存在的路径:");
File src5 = new File("aa/sff.java");
System.out.println(src5.getAbsolutePath());//也能得到结果,不过得到的是不存在路径当做了一个文件名字,没有去判定
//文件状态的判断
System.out.println("文件状态的判断:");
System.out.println(src1.exists());
System.out.println(src5.exists());//判断路径是否存在
System.out.println(src5.isFile());//是不是一个文件
System.out.println(src3.isDirectory());
System.out.println(src5.length());//当他为0的时候有两种情况,要么是文件夹要么是文件不存在
//创建一个文件只有文件呢不存在的时候才回去创建
System.out.println("创建一个文件:");
File src6 = new File(sr3+"java.txt");
if(!src6.exists()) {
boolean flag= src6.createNewFile();
System.out.println(flag);
}
boolean flag = src6.delete();
System.out.println(flag);
//创建文件夹
System.out.println("创建文件夹");
File fi = new File("D:/java_exli_project/tast2/src/tasts/tast1");
boolean flag1 = fi.mkdir();//只创建文件夹,前提上一个文件必须存在
System.out.println(flag1);
boolean flag2 = fi.mkdirs();//大多数都是使用这个,这个可以递归性的创建文件夹
System.out.println(flag2);
//遍历文件:
System.out.println("遍历文件");
File fi1 = new File("D:/java_exli_project/tast2/src");
String[] sr = fi1.list();//列出该问价下的所有文件和目录(不是递归性的列出)
for (String string : sr) {
System.out.println(string);
}
File[] fi2 = fi1.listFiles(); //列出该文件夹下的所有的file对象
for (File file : fi2) {
System.out.println(file);
}
File[] fi3 = File.listRoots();//列出所有的根路径
for (File file : fi3) {
System.out.println(file);
}
//递归的获取文件结构和目录树
File a1 = new File("D:/java_exli_project/tast2");
fileTree(a1, 3);
//递归的获取文件的大小
File a2 = new File("D:/java_exli_project/tast2");
fileSize(a2);
System.out.println(size+" 字节");
//
}
public static void fileTree(File file,int s1) {
if(file == null||!file.exists()) {
return;//递归头
}else if(file.isFile()) {//递归体
for (int i = 0; i < s1; i++) {
System.out.print("_$_");
}
System.out.println(file.getAbsolutePath());
}else {
for(File s:file.listFiles()) {
fileTree(s,s1+1);
}
}
}
public static void fileSize(File files ) {
if(files==null||!files.exists()) {
return;//递归头
}else {//递归体
if(files.isFile()) {
size += files.length();
}else {
for (File file : files.listFiles()) {
fileSize(file);
}
}
}
}