java高级-文件操作

一、File类的基本操作

    File类是唯一与文件本身操作(创建,删除,重命名等等)有关的类,如果要进行file类的操作,必须提供完整的路径。而后就可以进行文件的操作了。

1.File类的基本使用

    File类实现了Comparable的接口,说明了File类是一个可排序的类。

    File类的常用构造方法:public File​(String pathname);接收的是一个文件路径。public File​(String parent,String child);接收的是父路径,子目录。

    File类的其他常用的操作方法:

    1.创建新的文件:public boolean createNewFile​() throws IOException;

    2.删除文件:public boolean delete​();

    3.判断文件是否存在:public boolean exists​();

范例:文件的创建与删除

public class Test1 {
    public static void main(String[] args) throws IOException {
        File file = new File("D:\\ss.txt");
        if(file.exists()){
            file.delete();
        }else{
            file.createNewFile();
        }
    }
}

2.File类的深入

    1.在Windows和Linux,Unix的操作系统中,存在不同的文件分隔符,Windows中的文件分割符是“\”,Linux,Unix的文件分割符是“/”,为了解决此问题,File类中提供了一个常量:public static final String separator; 来表示分隔符。

范例:正常文件路径

File file = new File("D:"+File.separator+"ss.txt");

    但是现在随着适应性的不断加强,可以随意使用“\”和“/”。

File file = new File("D:/ss.txt");

    2.在进行文件操作的时候需要注意:程序->JVM->操作系统函数->文件,所以当文件创建或者删除的时候会出现延迟的问题,所以文件最好是不要重名,UUID可以解决这一问题。

    3.在进行文件创建的时候,首先得保证文件父级路径必须存在,否则会报 “系统找不到指定的路径” 的异常。

    获取父级路径:public File getParentFile​();

    创建多级路径的方法:public boolean mkdirs​();

范例:创建多级目录

public class Test1 {
    public static void main(String[] args) throws IOException {
        File file = new File("D:"+File.separator+"demo"+File.separator+"ss.txt");
        if(!file.getParentFile().exists()){
            file.getParentFile().mkdirs();
        }
        if(file.exists()){
            file.delete();
        }else{
            file.createNewFile();
        }
    }
}

    3.获取文件信息

  • 文件是否可读:public boolean canRead​();
  • 文件是否可写:public boolean canWrite​();
  • 文件大小:public long length​();返回数据为long型,表示字节数。
  • 最后修改时间:public long lastModified​();返回数据为long型,表示毫秒。
  • 判断是否是目录:public boolean isDirectory​();
  • 判断是否是文件:public boolean isFile​();
  • 列出目录内容:public File[] listFiles​();

二、文件操作经典范例

范例:列出某目录下的所有文件:

public class Test1 {
    public static void main(String[] args) throws IOException {
        File file = new File("D:"+File.separator);
        fileDeir(file);
    }

    public  static void  fileDeir(File file){
        if(file.isDirectory()){
            File files[] = file.listFiles();
            if(files != null) {
                for (int i = 0; i < files.length; i++) {
                    fileDeir(files[i]);
                }
            }
        }else{
            System.out.println(file);
        }

    }
}

 

 

 

转载于:https://my.oschina.net/chenzhou/blog/2086083

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值