zoukankan      html  css  js  c++  java
  • java的本地文件操作

    一、文件的创建、删除和重命名

    File file = new File("/bin/hello.txt");//文件无法被创建,系统找不到指定的路径
    file.createNewFile();

    File file = new File("bin/hello.txt");
    file.createNewFile();

    File file = new File("../hello.txt");//在当前目录的上一层目录创建文件
    file.createNewFile();


    File file = new File("../../hello.txt");//在当前目录的上一层目录创建文件
    file.createNewFile();

    file.exists()

    File nameto = new File("Hello.txt");
    file.renameTo(nameto);//重命名文件

    重命名文件,达到了移动文件的效果,跨目录时,要求源和目的必须处于同一个分区
    另外如果目标的重命名文件已经存在,重命名操作也会失败的
    文件处于不同的分区,需要使用文件的copy,而不是重命名

    File nameto = new File("src/new Hello.txt");
    file.renameTo(nameto);//重命名文件

    //文件
    file.isFile();


    //路径(文件夹)
    file.isDirectory();


    file.delete();//删除文件

    二、文件夹的创建、删除和重命名

    File folder1 = new File("my new folder");
    File folder2 = new File("my new folder/one/two/three/main");
    mkdirDemo(folder1);
    mkdirsDemo(folder2);

    File newfolder = new File("my new folder-new");
    renameFolder(folder1, newfolder);


    File newfolder2 = new File("my new folder/one/2/three/main");
    renameFolder(folder2, newfolder2);//重命名失败,被重命名的文件夹在构造函数中,必须是多级目录的最后一个子目录

    File newfolder3 = new File("my new folder/one/2");
    renameFolder(folder2, newfolder3);//重命名失败,被重命名的文件夹在构造函数中,必须是多级目录的最后一个子目录

    //必须处于同一个分区,另外如果目标的重命名文件夹已经存在,重命名操作也会失败的
    File folderSrc = new File("my new folder/one/two/three");
    File folderDest = new File("my new folder/one/three");
    if(folderSrc.renameTo(folderDest)){
      System.out.println("done");
    }else {
      System.out.println("fail");
    }

    File folder4 = new File("my new folder/one/two");//必须是空文件夹才可以删除,如果包含了其他文件或文件夹,那么删除失败
    if(folder4.delete()){
      System.out.println("done");
    }else {
      System.out.println("delete fail");
    }

    }

    //创建单个目录,文件夹如果已经存在的话则会报错,创建失败.
    private static void mkdirDemo(File folder) {
      if(folder.mkdir()){
        System.out.println("文件夹创建完成");
      }else{
      if(folder.exists()){
        System.out.println("文件夹已经存在不用创建.");
      }else {
        System.out.println("文件夹创建失败");
      }
    }

    /**
    * 创建多级目录,当然参数如果是一级目录,就只会创建一级目录
    * 文件夹如果已经存在的话也不会报错,已经存在的话就不创建
    * @param folder2
    */
    private static void mkdirsDemo(File folder2) {
      if(folder2.mkdirs()){
        System.out.println("文件夹创建完成!");
      }
    }

    /**
    * 重命名文件夹
    * @param srcFolder
    * @param destFolder
    */
    private static void renameFolder(File srcFolder, File destFolder) {
      if(srcFolder.renameTo(destFolder)){
        System.out.println("重命名完成");
      }else {
        System.out.println("重命名失败");
      }
    }

    三、读取文件的属性

    File file = new File("text.txt");
    //判断文件是否存在
    System.out.println(file.exists());
    //读取文件名称,只跟构造函数中的名称有关,和文件是否存在无关
    System.out.println(file.getName());
    //读取文件路径,相对路径
    System.out.println(file.getPath());
    //读取文件路径,绝对路径,从磁盘的根目录开始算的
    System.out.println(file.getAbsolutePath());
    //读取文件的父级路径
    System.out.println(file.getParent());//结果为null,因为file对应的路径是text.txt(构造函数).
    System.out.println(new File(file.getAbsolutePath()).getParent());
    //读取文件的大小,单位是字节
    System.out.println(file.length()/1000 + "KB");//硬盘上单位进制是1000而不是1024
    //判断文件是否是隐藏文件
    //在linux下,以点开头的文件就是隐藏文件,在windows下,右键设定文件的隐藏属性
    System.out.println(file.isHidden());
    //判断文件是否可读
    System.out.println(file.canRead());
    //判断文件是否可写
    System.out.println(file.canWrite());
    //判断文件是否是文件夹
    System.out.println(file.isDirectory());

    四、设置文件的属性

    //将文件设置为可写
    file.setWritable(true);
    //将文件设置为不可写
    file.setWritable(false);
    //将文件设置为可读
    file.setReadable(true);

    //将文件设置成不可读不可写
    file.setReadable(false);
    file.setWritable(false);

    //将文件设置为只读
    file.setReadOnly();

  • 相关阅读:
    在windows下安装mysql2 的问题解决 兰猫
    物料在XXX仓库不存在
    sapcar解压缩
    采购信息源(采购信息记录、合同、计划协议、报价)
    拓端tecdat|R语言矩阵特征值分解(谱分解)和奇异值分解(SVD)特征向量分析有价证券数据
    拓端tecdat|Python面板时间序列数据预测:格兰杰因果关系检验Granger causality test药品销售实例与可视化
    拓端tecdat|R语言分布滞后线性和非线性模型(DLNM)分析空气污染(臭氧)、温度对死亡率时间序列数据的影响
    拓端tecdat|Python在线零售数据关联规则挖掘Apriori算法数据可视化
    拓端tecdat|R语言ARIMAGARCH波动率模型预测股票市场苹果公司日收益率时间序列
    Google编码规范
  • 原文地址:https://www.cnblogs.com/byron0918/p/4666122.html
Copyright © 2011-2022 走看看