您当前的位置: 首页 >  Java

彭世瑜

暂无认证

  • 2浏览

    0关注

    2791博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java学习路线-25:文件操作File类

彭世瑜 发布时间:2019-12-21 22:14:53 ,浏览量:2

第15 章 : 文件操作 67 File类基本操作

文件操作系统操作类: java.io.File

文件创建,删除,重命名

File类基本使用 File 实现了Comparable接口

// 构造方法
public File(String pathname)
public File(String parent, String child)

// 创建文件
public boolean createNewFile() throws IOException

// 文件存在
public boolean exists()

// 删除文件
public boolean delete()

示例:

import java.io.File;
import java.io.IOException;

class Demo {
    public static void main(String[] args) throws IOException {
        File file = new File("./demo.txt");

        if(file.exists()){
            boolean ret = file.delete();
            System.out.println("删除结果:" + ret);

        } else{
            boolean ret =  file.createNewFile();
            System.out.println("创建结果:" + ret);
        }
    }
}
68 File类操作深入

1、路径分隔符 Windows分隔符 "\" Linux分隔符 "/" 路径分隔符常量 File.separator

2、文件操作流程

程序 -> JVM -> 操作系统函数 -> 文件处理

重复删除或创建的时候会有延时情况, 建议:文件名不要重名

3、创建文件的时候父级目录必须存在

// 获取父路径
public File getParentFile()

// 创建目录
public boolean mkdirs()

示例

import java.io.File;
import java.io.IOException;

class Demo {
    public static void main(String[] args) throws IOException {
        File file = new File("./dir/demo/demo.txt");
        File parentFile = file.getParentFile();

        if (!parentFile.exists()) {
            parentFile.mkdirs();
        }

        file.createNewFile();
    }
}
69 获取文件信息

涉及文件本身操作,不涉及文件内容处理

// 是否可读
public boolean canRead()

// 是否可写
public boolean canWrite()

// 是否可执行
public boolean canExecute()

// 是否为文件
public boolean isFile()

// 是否为目录
public boolean isDirectory()

// 获取文件长度 字节
public long length()

// 最后修改时间 13位时间戳
public long lastModified()

// 列出目录内容
public File[] listFiles()

示例

import java.io.File;

class Demo {
    public static void main(String[] args) {
        File file = new File("./dir/demo");

        System.out.println(file.canRead()); // true
        System.out.println(file.canWrite());  // true
        System.out.println(file.canExecute()); // false

        System.out.println(file.isFile()); // true
        System.out.println(file.isDirectory());  // false

        System.out.println(file.length());  // 135 字节

        System.out.println(file.lastModified()); // 1574952161000

        File[] list = file.listFiles();
        for (File f : list) {
            System.out.println(f);
        }
        // ./dir/demo/demo.txt

    }
}
70 综合案例:列出目录结构
import java.io.File;

class Demo {
    public static void main(String[] args) {
        File file = new File("./dir");
        listDir(file);
    }

    public static void listDir(File file){
        if(file.isDirectory()){
            File[] files = file.listFiles();
            
            if(files != null){
                for(File f: files){
                    listDir(f);
                }
            }
        } else{
            System.out.println(file);
        }
    }
}
71 综合案例:文件批量更名
import java.io.File;

class Demo {
    public static void main(String[] args) {
        long start = System.currentTimeMillis();

        File file = new File("./dir");
        renameDir(file);

        long end = System.currentTimeMillis();
        System.out.println("花费时间:" + (end - start));
    }

    public static void renameDir(File file){
        if(file.isDirectory()){
            File[] files = file.listFiles();

            if(files != null){
                for(File f: files){
                    renameDir(f);
                }
            }
        } else{

            if (file.getName().contains(".")){
                int endPos = file.getName().lastIndexOf(".");
                String name = file.getName().substring(0, endPos);

                File newFile = new File(file.getParent(), name + ".txt");

                System.out.println(file.getName());
                System.out.println(newFile);
                
                file.renameTo(newFile);
            }
        }
    }
}
关注
打赏
1665367115
查看更多评论
立即登录/注册

微信扫码登录

0.4604s