• File类


    File类

    概述

    File文件和路径名的抽象表示形式

    graph TD A[File] B[路径] A --> C[相对路径] A --> D[绝对路径]

    构造方法

    • File(String pathname) 根据一个路径得到File对象
    • FIle(String parent, String child) 根据一个目录和一个子文件/目录得到一个File对象
    • File(FIle parent, String child) 根据一个父File对象和一个子文件/目录得到File对象
    • File(URI uri) 通过将给定的file:URI转化为抽象路径名来创建新的File对象
    import java.io.File;
    
    public class DemoFile {
    
    	public static void main(String[] args) {
    		File file = new File("/home/mephisto/eclipse-workspace/learnjava/src/com/mephisto/file/demo.txt");
    		System.out.println(file.exists());
    		
    		File file2 = new File("/home/mephisto/eclipse-workspace/learnjava/src/com/mephisto/file/","demo.txt");
    		System.out.println(file2.exists());
    		
    		
    		File parent = new File("/home/mephisto/eclipse-workspace/learnjava/src/com/mephisto/file/");
    		String child = "demo.txt";
    		System.out.println(new File(parent,child).exists());
    	}
    
    }
    

    创建功能

    • public boolean createNewFile(): 创建文件 如果存在这样的文件就不创建
    • public boolean mkdir() : 创建文件夹, 如果存在这样的文件夹, 就不创建
    • public boolean madirs(): 创建文件夹, 如果父文件夹不存在,会创建出来, 类似递归创建
    import java.io.File;
    import java.io.IOException;
    
    public class DemoFildMethod {
    	public static void main(String[] args) throws IOException {
    		String pathname = "/home/mephisto/eclipse-workspace/learnjava/src/com/mephisto/file";
    		File file = new File(pathname + "test");
    		file.createNewFile();
    		
    		File file2 = new File(pathname + "demo");
    		file2.mkdir();
    		
    		
    		File file3 = new File(pathname + "demotest/test");
    		file3.mkdirs();
    	}
    
    }
    
    

    重命名和删除功能

    方法

    • public boolean rename(File dest) 把文件重命名为指定的文件路径
    • public boolean delete() 删除文件或文件夹

    重命名注意事项

    • 如果路径名相同, 就是改名
    • 如果路径名不同, 就是改名并剪切

    删除注意事项

    • Java中的删除不走回收站
    • 要删除一个文件夹, 注意该文件夹下不能包含文件或者文件夹
    import java.io.File;
    
    public class DemoDeleteOrRename {
    
    	public static void main(String[] args) {
    		String pathname = "/home/mephisto/eclipse-workspace/learnjava/src/com/mephisto/file";
    		File file = new File(pathname,"test");
    		file.delete();
    		
    		File file3 = new File(pathname,"demotest");
    		System.out.println(file3.delete());  // false
    		
    		
    		File file2 = new File(pathname,"demo.txt");
    		file2.renameTo(new File(pathname,"Demo"));
    	}
    }
    

    判断功能

    方法

    • public boolean isDirectory() : 判断是否是目录
    • public boolean isFile() : 判断是否是文件
    • public boolean exists() : 判断是否存在
    • public boolean canRead() : 判断是否可读
    • public boolean canWrite() : 判断是否可写
    • public boolean isHidden() : 判断是否隐藏
    import java.io.File;
    
    public class DemoJudge {
    
    	public static void main(String[] args) {
    		String pathname = "/home/mephisto/eclipse-workspace/learnjava/src/com/mephisto/file";
    		
    		File file = new File(pathname);
    		System.out.println(file.isDirectory());
    		
    		File file2 = new File(pathname,"Demo");
    		System.out.println(file2.canRead());
    		System.out.println(file2.canWrite());
    		
    		
    		// windows系统认为所有文件都是可读的, 不可以设置是否可读, 可以设置是否可写
    		file2.setReadable(false);
    		System.out.println(file2.canRead());
    		file2.setWritable(false);
    		System.out.println(file2.canWrite());
    		file2.setReadable(true);
    		file2.setWritable(true);
    		
    		file2.renameTo(new File(pathname,".Demo"));
    		File file3 = new File(pathname,".Demo");
    		System.out.println(file3.isHidden());
    		
    		File file4 = new File(pathname,".Demo");
    		file4.renameTo(new File(pathname,"Demo"));
    	}
    }
    
    

    获取功能

    方法

    • public String getAbsolutePath() 获取绝对路径
    • public String getPath() 获取路径
    • public String getName() 获取名称
    • public long lenth() 获取字节数
    • pubic long lastModified() 获取最后一次修改的时间,毫秒值
    • public String[] list() 获取指定目录下的所有文件或者文件夹的名称数组
    • public File[] listFiles() 获取指定目录下的所有文件或者文件夹的File数组
    import java.io.File;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class DemoGetMethod {
    	public static void main(String[] args) {
    		String pathname = "/home/mephisto/eclipse-workspace/learnjava/src/com/mephisto/file";
    		File file = new File(pathname, "Demo");
    
    		System.out.println(file.getPath());
    
    		System.out.println(file.getName());
    
    		System.out.println(file.getAbsolutePath());
    
    		System.out.println(file.length());
    
    		System.out.println(new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss").format(new Date(file.lastModified())));
    
    		String dirName = "/home/mephisto/eclipse-workspace/learnjava/src/com/mephisto/file";
    		File file2 = new File(dirName);
    		for (String string : file2.list()) {
    			System.out.println(string);
    		}
    
    		System.out.println("===============");
    
    		for (File file3 : file2.listFiles()) {
    			System.out.println(file3.getName());
    		}
    	}
    }
    

    文件名称过滤器

    方法

    • public String[] list(FilenameFilter filter)
    • public File[] listFiles(FileFilter filter)
  • 相关阅读:
    51单片机数码管字符H自右向左移动
    51单片机点亮双向流水灯
    React 动态增减表单项
    React--Tree 点击节点收缩
    Redis 操作异常
    Linxu 后台运行
    vert.x学习(四),使用模板解析器ClassLoaderTemplateResolver
    vert.x学习(三),Web开发之Thymeleaf模板的使用
    vert.x学习(二),使用Router来定义用户访问路径
    vert.x学习(一),开篇之hello world
  • 原文地址:https://www.cnblogs.com/mephisto03/p/9473954.html
Copyright © 2020-2023  润新知