File类文件的操作

来源:互联网 发布:java反编译工具怎么用 编辑:程序博客网 时间:2024/06/05 20:41

File类可以对我们资源管理器里边的文件夹及文件进行一些操作

下边的是创建及使用的基本规则

import java.io.File;import java.io.IOException;public class FileTest {    public static void main(String[] args) {        // 硬盘上的任何文件在Java中都可以使用File 类表示        // pathname表示文件的路径        File f1 = new File("D:\\JavaTest\\1.txt");        // 通过第一个\来获取第二个\的本来含义    转义字符        File f2 = new File("D:/JavaTest/2.txt");        System.out.println("f1文件是否存在:" + f1.exists());        System.out.println("f2文件是否存在:" + f2.exists());        File f3 = new File("3.txt");        System.out.println("f3文件是否存在:" + f3.exists());        // 绝对路径: 从盘符开始的路径 "D:\JavaTest\2.txt"        // 相对路径: 从当前文件夹开始的路径 .\3.txt        //      .表示当前文件夹, 可以省略        //      相对路径是相对WorkSpace项目的文件夹为起始        // 获取对象的路径        System.out.println(f3.getAbsolutePath());        // 不同的操作系统对路径中的分隔符有不同的表示方式        // File.separator 常量能自动根据操作系统设置分隔符        // 解决跨平台路径不一致的问题,推荐写法        File f4 = new File("D:"+File.separator + "JavaTest" + File.separator + "3.txt");        // 创建或者删除的时候,一定要先试用exists()判断文件是否存在        // 只有文件存在时才进行删除操作,不存在才进行创建操作        // 创建和删除操作可能需要延迟        f1.delete();        try {            f1.createNewFile();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        // 重命名        File f5 = new File("D:JavaTest/5.txt");        f1.renameTo(f5);        // File 没有复制操作        // File只操作文件,不处理里面的内容    }}

File的一些方法的使用

import java.io.File;public class FileTest2 {    public static void main(String[] args) {        File f1 = new File("D:\\JavaTest");        if (f1.exists()) {            System.out.println("文件存在!");            // 必须保证文件夹中没有任何内容才能删除            boolean flag = f1.delete();            if (flag) {                System.out.println("删除成功");            }else {                System.out.println("删除失败");            }        }else {            // 创建文件夹  必须保证路径上每一个文件夹都存在            boolean flag = f1.mkdir();            if (flag) {                System.out.println("创建成功");            }else {                System.out.println("创建失败");            }        }        // DOS命令:mkdir  make directory 创建文件         // mkdir() 必须保证路径上的父文件夹都存在        System.out.println("创建是否成功:" + f1.mkdir());        // mkdirs() 创建路径上所有不存在的文件夹        System.out.println("创建是否成功:" + f1.mkdirs());    }}
import java.io.File;import java.time.LocalDateTime;import java.time.ZoneOffset;import java.util.Date;public class FileTest4 {    public static void main(String[] args) {        File f1 = new File("D:/JavaTest/1.txt");        System.out.println("是不是文件:" + f1.isFile());        System.out.println("是不是文件夹:" + f1.isDirectory());        System.out.println("可读:" + f1.canRead() );        System.out.println("可写:" + f1.canWrite() );        System.out.println("是否是隐藏文件" + f1.isHidden());        System.out.println("大小:" + f1.length()); // 字节        // 时间戳 : 从19701100:00:00到指定时间经过了多少毫秒        System.out.println("最后修改时间:" + f1.lastModified());        // 时间戳转化为对应的日期 1          LocalDateTime localDateTime = LocalDateTime.ofEpochSecond(System.currentTimeMillis()/1000, 0,ZoneOffset.ofHours(8));        System.out.println(localDateTime);        // 时间戳转化为对应的日期  2        Date date = new Date(f1.lastModified());        System.out.println(date);        File f2 = new File("D:/JavaTest");        // 不包含文件夹中的文件大小          System.out.println("文件夹大小:" + f2.length());    }}

使用File类的方法,可以写一个遍历文件夹的方法
使用的递归的方法.

import java.io.File;public class FileTest5 {    public static void main(String[] args) {        File f1 = new File("D:/");        String[] names = f1.list();        for (String name : names) {            // System.out.println(name);        }        // 当前文件夹下所有的文件对象        File[] files = f1.listFiles();        // 遍历所有对象        for (File file : files) {            // System.out.println(file.getName());        }        int x = getDirectoryLength(f1);        System.out.println(x);    }    public static int getDirectoryLength(File file){        int result = 0;        // 大小 = 所有文件的大小 + 所有文件夹的大小        // 1.获取所有的文件        File[] files = file.listFiles();        // 2.遍历进行累加        for (File file2 : files) {            if (file2.isFile()) {                // 普通文件通过length()  获取长度进行类加                result += file2.length();                System.out.println(file2.getName());            }else if(file2.isDirectory()) {                // 文件夹通过自己的方法再获取长度                result += getDirectoryLength(file2);                // 方法内部调用自己的方式叫做递归                // 一定存在终止的条件,否则就会产生死循环                // 一定会有一个文件夹没有子文件夹            }        }        return result;      }}
原创粉丝点击