Java File类
File类
- File类:代表物理盘符中的一个文件或者文件夹
- 方法:
- createNewFile():创建一个新文件
- mkdir():创建一个新目录
- delete():删除文件或空目录
- exists():判断File对象所对象所代表的对象是否存在
- getAbsolutePath():/获取文件的绝对路径
- getName ():取得名字
- getParent ():获取文件/目录所在的目录
- isDirectory():是否是目录
- isFile():是否是文件
- length():获得文件的长度
- listFiles():列出目录中的所有内容
- renameTo():修改文件名为
 
分隔符
public static void separator(){
    System.out.println("路径分隔符"+ File.pathSeparator);
    System.out.println("名称分隔符"+ File.separator);
}
文件操作
创建文件
- 对文件对象进行打印时,打印的为创建时的路径
- 使用 createNewFile()创建文件时,如果文件已存在不再创建文件,返回false
File file = new File("F:\\file.txt");
System.out.println(file.toString());//打印该路径,创建的对象可能存在可能不存在
//判断文件是否存在,文件不存在进行创建文件
if(!file.exists()){
    boolean b = file.createNewFile();//创建文件,多次运行返回false,因为文件已经存在,不再创建
    System.out.println("创建结果为:"+b);
}
删除文件
- 直接删除
System.out.println("删除结果为:"+file.delete());
- JVM退出时删除
file.deleteOnExit();
Thread.sleep(5000);//休眠五秒
获取文件信息
System.out.println("获取文件的绝对路径:"+file.getAbsolutePath());
System.out.println("获取路径:"+file.getPath());//输出的为创建对象时写入的路径
System.out.println("获取文件名称:"+file.getName());
System.out.println("获取父目录:"+file.getParent());
System.out.println("获取文件长度:"+file.length());
System.out.println("获取文件的最后修改时间:"+new Date(file.lastModified()).toLocaleString());//将获得的时间转为Date类型
判断
System.out.println("是否可写:"+file.canWrite());
System.out.println("是否是文件:"+file.isFile());
System.out.println("是否隐藏:"+file.isHidden());
文件夹操作
创建文件夹
- mkdir():只能创建单级目录
- mkdirs():可以创建多级目录
File dir = new File("F:\\test\\a");
System.out.println(dir.toString());
if(!dir.exists()){
    //dir.mkdir();//只能创建单级目录
    System.out.println("创建结果为:"+dir.mkdirs());//可以创建多级目录
}
删除文件夹
- 直接删除:删除最底层目录,该目录必须是空目录
System.out.println("删除结果:"+dir.delete());
- JVM删除
dir.deleteOnExit();
Thread.sleep(5000);
获取文件夹信息
System.out.println("获取绝对路径:"+dir.getAbsolutePath());
System.out.println("获取路径:"+dir.getPath());//输出的为创建对象时写入的路径
System.out.println("获取文件夹名称:"+dir.getName());
System.out.println("获取父目录:"+dir.getParent());
System.out.println("获取文件夹的最后修改时间:"+new Date(dir.lastModified()).toLocaleString());
判断
System.out.println("是否是文件夹:"+dir.isDirectory());
System.out.println("是否隐藏:"+dir.isHidden());
遍历文件夹
- list():返回String[],返回文件名称
- listFiles():返回Files[],返回该路径下所有文件/文件夹的绝对路径
File dir2 = new File("F:\\java笔记");
String[] files = dir2.list();
//dir2.listFiles();
System.out.println("===========================");
for (String s : files) {
    System.out.println(s);
}
使用 listFiles()遍历
File[] f = dir2.listFiles();
System.out.println("===========================");
for (File file : f) {
    System.out.println(file.toString());
}
FileFilter接口
- public interface FileFIlter- boolean accept(File pathname)
 
- 调用File类中的 listFiles()方法时,支持传入FileFilter接口实现类,对获取文件进行过滤,满足条件的才可返回
File[] f2 = dir2.listFiles(new FileFilter() {
    @Override
    public boolean accept(File pathname) {
        if(pathname.getName().endsWith(".png")){
            return true;
        }
        return false;
    }
});
for (File file : f2) {
    System.out.println(file.getName());
}
递归遍历文件夹
public static void listDir(File dir) throws Exception{
    File[] files = dir.listFiles();
    //如果文件夹不为空,文件长度大于0
    if(files!=null && files.length>0){
        for (File file : files) {
            //如果是文件夹
            if(file.isDirectory()){
                listDir(file);//递归
            }else{
                System.out.println(file.getAbsoluteFile());
            }
        }
    }
}
递归删除文件夹
public static void deleteDir(File dir) throws Exception{
    File[] files = dir.listFiles();
    //如果文件夹不为空,文件长度大于0
    if(files!=null && files.length>0){
        for (File file : files) {
            if(file.isDirectory()){
                deleteDir(file);
            }else{
                //删除文件
                System.out.println(file.getAbsoluteFile()+"删除:"+file.delete());
            }
        }
    }
    System.out.println(dir.getAbsoluteFile()+"删除"+dir.delete());
}
Properties属性集合
- Properties:属性集合
- 特点:
- 存储属性名和属性值
- 属性名和属性值都是字符串类型
- 没有泛型(确定是字符串)
- 和流有关
 
创建集合
Properties properties = new Properties();
添加数据
properties.setProperty("name","A1");
properties.setProperty("age","20");
System.out.println(properties.toString());
遍历
Set<String> proNames = properties.stringPropertyNames();
for (String pro : proNames) {
    System.out.println(pro+"="+properties.getProperty(pro));
}
流相关方法
- list():写文件,有默认注释(不知道能不能修改)
PrintWriter printWriter = new PrintWriter("F:\\print.txt");
properties.list(printWriter);
printWriter.close();
- store():写文件,- .properties中不允许出现中文,“注释”以转码形式存在
FileOutputStream fileOutputStream = new FileOutputStream("F:\\store.properties");
properties.store(fileOutputStream,"注释");
fileOutputStream.close();
- load():加载文件中的内容
Properties properties2 = new Properties();
FileInputStream fileInputStream = new FileInputStream("F:\\store.properties");
properties2.load(fileInputStream);
fileInputStream.close();
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号