java File类

本文详细介绍Java中的File类,包括构造方法、文件与目录的操作方法如创建、删除、重命名等,以及如何获取文件属性和判断文件状态。
简介:
  • Java文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等
  • File对象代表磁盘中实际存在的文件和目录
代码演示:

1.构造方法
File(String pathname):根据一个路径得到File对象
File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象

File类的构造方法
		1. File file = new File("E:\\20151020\\day02\\day02总结.java") ;
		2. File file2 = new File("E:\\20151020\\day02" , "day02总结.java") ;
		3. File file3 = new File("E:\\20151020\\day02") ;
		   File file4 = new File(file3 , "day02总结.java") ;
package org.westo.demo2;

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

/**
* @Author: Administrator
* @CreateTime: 2019-01-15 11:00
*/
public class MyDemo {
   public static void main(String[] args) throws IOException {
       //封装文件对文件进行操作
       //相对路径 不带有盘符号的路径
       // 绝对路径 带有盘符号的完整路径

       //采用相对路径生成的文件,在工程的根目录下
       File file = new File("a.txt");
       file.createNewFile();
       //采用绝对路径生成的文件
       File file2 = new File("E:\\文件LY\\WestOS_SE\\20190115-JavaSE-课件\\代码\\20190115-MyJavaDemo-File类-上午\\ee.txt");
       file2.createNewFile();
       
       //封装目录
       // File(File parent, String child)
       File fu = new File("D:\\abc");
       File file2 = new File(fu, "b.txt");
       // File(String parent, String child)
       // 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
       File file3 = new File("D:\\abc", "b.txt");
   }
}

结果:
在这里插入图片描述
实例: 如果D:/myword目录中没有名称为word的文件,File类对象可通过调用createNewFile()方法创建一个名称为word.txt的文件;如果word.txt文件存在,可以通过文件对象的delete()方法将其删除。

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

public class FileTest {
  public static void main(String[] args) {
  File file = new File("D:\\test","test6.txt");
    if(file.exists()){
    file.delete() ;
      System.out.println("文件已删除!");
  }else {
  try {
    file.createNewFile() ;
      System.out.println("文件已创建!");
  } catch (IOException e) {

    e.printStackTrace();
      }
        }
    }
  }

2.创建目录(单级目录,多级目录)

package org.westos.demo3;

import java.io.File;
/**
 * @Author: Administrator
 * @CreateTime: 2019-01-15 11:10
 */
public class MyDemo {
    public static void main(String[] args) {
        File file = new File("D:\\myTest");
        //创建目录,第一次创建,如果创建成功返回true,如果目录已经存在,则不会重复创建,返回false
        boolean b = file.mkdir(); //只能创建单级目录
        System.out.println(b);

        System.out.println("--------------------------------------");
        File file1 = new File("D:\\myaaa\\bbb\\cccc");
        boolean mkdirs = file1.mkdirs();//创建多级目录
        System.out.println(mkdirs);
    }
}

3.重命名

package org.westos.demo5;

import java.io.File;

/**
 * @Author: Administrator
 * @CreateTime: 2019-01-15 11:34
 */
public class MyTest {
    public static void main(String[] args) {
        //重命名:传入的文件路径和源文件路径一样,则是重命名
        File file = new File("ee.txt");
        boolean b = file.renameTo(new File("e.txt")); //返回值是是否重命名成功
        System.out.println(b);
        System.out.println("-----------------------------------");
        File file = new File("f.txt");
        //重命名:如果调用renameTo(new File("D:\rr.txt")); 传入的文件路径和源文件路径不一样,则是剪切重命名
        boolean b = file.renameTo(new File("D:\\f.txt"));
        System.out.println(b);
    }
}

4.删除文件和目录

package org.westos.dmeo4;

import java.io.File;

/**
 * @Author: Administrator
 * @CreateTime: 2019-01-15 11:15
 */
public class MyDemo5 {
    public static void main(String[] args) {
        File file = new File("a.txt");
        //删除文件 返回值表示是否删除成功
        boolean b = file.delete();
        System.out.println(b);
        //删除目录
        File file1 = new File("D:\\myTest");
        //只能删除空目录
        //非空目录,则无法直接删除,如果要删多级目录,可以使用递归删除
        file1.delete();
    }
}

5.有关于获取的方法

        public String getAbsolutePath ():获取绝对路径
        public String getPath ():获取相对路径
        public String getParent () 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
        public File getParentFile () 返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。
        public long getTotalSpace () 返回此抽象路径名指定的分区大小。返回总容量 单位字节
        public long getFreeSpace () 返回此抽象路径名指定的分区中未分配的字节数。返回剩余容量 单位字节
        public String getName ():获取名称
        public long length ():获取长度。字节数
        public long lastModified ():获取最后一次的修改时间,毫秒值
package org.westos.demo2;

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

/**
 * @Author: Administrator
 * @CreateTime: 2019-01-15 13:40
 */
public class MyDemo2 {
    public static void main(String[] args) throws IOException {
        //有关于获取的方法
        File file = new File("a.txt");
       // file.createNewFile();
        //获取文件名
        String name = file.getName();
        System.out.println(name);
        //获取文件大小
        long length = file.length();
        System.out.println(length);

        //----------------------------
        File file1 = new File("D:\\test.exe");
        //返回的是绝对路劲的字符串表现形式
        String absolutePath = file1.getAbsolutePath();
        System.out.println(absolutePath);
        //返回的是文件形式
        File file2 = file1.getAbsoluteFile();
        System.out.println(file2.toString());

        //----------------------------
        File file3 = new File("b.txt");
        //获取相对路径
        String path = file3.getPath();
        System.out.println(path);

        //------------------------------
        File file4 = new File("D:\\", "test.exe");
        //获取父路径字符串形式
        String parent = file4.getParent();
        System.out.println(parent);
        //返回的是文件形式
        File parentFile = file4.getParentFile();
        System.out.println(parentFile.toString());
        
        //------------------------------
        File file = new File("D:\\");
        //获取该空间的总容量,单位是字节
        long totalSpace = file.getTotalSpace();
        System.out.println(totalSpace/1024/1024/1024+"G");
        //获取该空间的剩余容量
        long freeSpace = file.getFreeSpace();
        System.out.println(freeSpace/ 1024.0 / 1024.0 / 1024.0 + "G");
        
        //------------------------------
        //获取文件的最后一次修改时间
        File file = new File("D:\\微信");
        long time = file.lastModified();
        Date date = new Date(time);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String format = simpleDateFormat.format(date);
        System.out.println(format);
    
        //------------------------------
        // public String[] list ():获取指定目录下的所有文件或者文件夹的名称数组
        // public File[] listFiles ():获取指定目录下的所有文件或者文件夹的File对像数组
        File file1 = new File("E:\\我的图片和音乐\\图片");
        String[] list = file1.list();
        for (String s : list) {
            System.out.println(s);
        }
        
        File file2 = new File("E:\\我的图片和音乐\\图片");
        File[] files = file2.listFiles();
        for (File file : files) {
            System.out.println(file.getName());
        }
    }
}

6.关于判断的方法

package org.westos.demo3;

import java.io.File;

/**
 * @Author: Administrator
 * @CreateTime: 2019-01-15 13:58
 */
public class MyDemo {
    public static void main(String[] args) {
        //关于判断的方法
        File file = new File("a.txt");
        //判断此文件是否存在
        boolean exists = file.exists();
        System.out.println(exists);
        //判断是否是文件
        boolean file1 = file.isFile();
        System.out.println(file1);
        //判断是否是目录
        boolean directory = file.isDirectory();
        System.out.println(directory);

        File file = new File("a.txt");
        //判断文件是否可读
        boolean b = file.canRead();
        //判断文件是否可写
        boolean b1 = file.canWrite();
        //判断文件是否隐藏
        boolean hidden = file.isHidden();
        // windows 下的所有文件都有可执行权限。要测试这个功能只能用 linux、unix
        //判断文件是否是可执行文件
        // boolean b2 = file.canExecute();
    }
}

有关文件的案例

A:
案例演示:

需求:判断E:\我的图片和音乐\图片 盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称

public class MyDemo {
    public static void main(String[] args) {
        File file = new File("E:\\我的图片和音乐\\图片");
        File[] files = file.listFiles();
        for (File f : files) {
            if(f.isFile()&&f.getName().endsWith(".jpg")){
                System.out.println(f.getName());
            }
        }
    }
}

B:
案例演示:

需求:判断E:\我的图片和音乐\图片 盘目录下是否有后缀名为.jpg的文件,后缀名改成 .png

public class MyDemo2 {
    public static void main(String[] args) {
        File file = new File("E:\\我的图片和音乐\\图片");
        //获取该目录下所有的文件和文件夹
        File[] files = file.listFiles();
        for (File f : files) {
            if (f.isFile() && f.getName().endsWith(".jpg")) {
                //修改文件名
                String name = f.getName();
                String newFileName = name.substring(0, name.lastIndexOf("."));
                f.renameTo(new File(f.getParent(), newFileName + ".png"));
            }
        }
    }
}
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 "ZV-1 高级功能使用手册 用户详细指南" 此文档将全面阐述 Sony ZV-1 相机的进阶功能及其操作方法,为用户呈现详尽的操作指引和配置范例。 一、使用指南与摄影技巧 * 本手册旨在协助用户迅速掌握 Sony ZV-1 相机的使用方法 * 提供摄影技巧与操作方法等实用信息 * 可在线查阅配件兼容性详情及配置范例 二、基础操作 * 通过控制轮和菜单选项将常用功能分配至按键 * 探索功能按钮(Fn)与自定义按键的应用 * 学习显示(DISP)按钮的操作方法 * 明确拍摄及浏览时图标与提示的展示方式 三、电源与存储介质 * 查询电池续航时间及可拍摄照片数量 * 注意电池使用规范及更换事项 * 掌握存储卡插入方法及注意事项 四、语言与时间设定 * 说明语言及时间配置流程 * 熟悉相机内部功能说明和拍摄模式选择 五、拍摄模式与对焦系统 * 探究拍摄模式和对焦模式的选择 * 了解自动对焦、人脸/眼部自动对焦设置及主体追踪功能 * 掌握手动对焦和直接手动对焦(DMF)操作 * 理解峰值对焦设置及拍摄模式选择 六、触控操作与视频录制 * 阐明触控功能特性及触控快门使用 * 学习触控对焦与触控追踪功能 * 掌握视频录制模式及高帧速率(HFR)设置 * 了解智能自动与场景识别程序 七、曝光调整与白平衡 * 熟悉曝光模式和白平衡配置 * 探究ISO感光度调节与变焦功能 * 学习自动HDR及动态范围优化(DRO)技术 八、图像处理与编辑功能 * 明确图像质量与文件格式选项 * 了解美肤效果与自动构图功能 * 掌握色彩空间选择与快门速度设置 * 探索降噪处理及高ISO降噪技术 九、闪光灯与人脸识...
内容概要:本文围绕“重磅粉丝福利专栏1.8配电网分布式能源的选址与定容系列”展开,系统涵盖了电力系统与智能优化领域的多项前沿科研主题,重点聚焦于配电网中分布式能源的规划与优化问题。内容涉及三相PWM换流器建模、微电网控制、电动汽车有序充电、风光储协同调度、源网荷储一体化优化、双层优化与ADMM分布式算法等核心技术,并结合Matlab/Simulink仿真工具实现多种复杂场景的建模与求解。文档列举了大量具体研究案例,如基于粒子群算法的参数辨识、多目标路径规划、需求响应下的供电能力评估等,突出其在科研复现、算法创新与工程应用中的实用价值。整体资源体系庞大,强调“借力科研”,倡导通过成熟工具与方法提升研究效率与创新能力。; 适合人群:具备一定电力系统、自动化或相关工程背景,熟悉Matlab/Simulink环境,从事科研工作1-3年的研究生、科研人员或工程师。; 使用场景及目标:①用于复现高水平论文(如硕士、博士论文及EI期刊)中的算法与仿真模型;②支持科研项目中关于分布式能源规划、微电网优化、智能调度与控制策略的设计与验证;③辅助完成课程设计、毕业设计或科研竞赛中的仿真建模任务。; 阅读建议:建议读者按照文档提供的目录结构系统性浏览,优先关注与自身研究方向匹配的模块,结合提供的代码资源与仿真模型进行实践操作,注重理论分析与仿真实现的结合,以提升科研效率与创新能力。
内容概要:本文针对不对称电网故障下T型三电平逆变器的低电压穿越(LVRT)问题,提出了一种多目标协同控制策略。该策略深度融合正负序分离技术、电网电压前馈控制与先进的DPWMA调制方法,构建了完整的控制系统架构,旨在实现故障期间负序电流的有效抑制、并网功率的平稳输出以及动态响应速度的显著提升。研究通过Simulink平台建立了详细的T型三电平逆变器仿真模型,对所提控制策略在稳态运行、电网电压不平衡跌落及动态切换等多种工况下的性能进行了全面验证。仿真结果表明,该方案能有效改善并网电流质量,减小功率波动,增强系统在恶劣电网条件下的运行稳定性与鲁棒性,为高比例新能源接入背景下提升电力电子设备的故障穿越能力提供了有效的技术路径。; 适合人群:具备电力电子与电力系统基础知识,从事新能源并网、逆变器控制或微电网技术研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究T型三电平逆变器在不对称电网故障下的动态行为与控制难点;②掌握正负序分离、DPWMA调制、电网前馈等关键技术的设计与实现方法;③为高比例新能源接入背景下提升并网设备低电压穿越能力提供理论支持与仿真验证手段; 阅读建议:建议结合Simulink仿真模型同步学习,重点关注控制策略的结构设计与各模块间的协同机制,深入理解正负序解耦控制与前馈补偿对系统性能的提升作用,并可通过调整故障条件进行对比实验以加深理解。
内容概要:本文提出了一种融合在线鲁棒主成分分析(RPCA)与长短期记忆(LSTM)循环神经网络的商品需求预测方法,旨在应对实际商业数据中存在的噪声与异常值问题,提升预测精度与时序建模能力。该方法首先通过在线RPCA模型对原始需求序列进行实时分解,将数据分离为低秩趋势成分和稀疏异常成分,从而有效剔除突发性扰动和噪声干扰;随后,利用LSTM网络对清洗后的低秩趋势序列进行深度时序学习,充分捕捉其中的长期依赖关系、周期性模式及非线性动态特征,最终实现高鲁棒性与高精度的需求预测。整个框架具有良好的在线更新能力,适用于动态变化的零售、电商等业务场景,并基于Python实现了完整的算法流程。; 适合人群:具备一定Python编程能力与机器学习基础,从事数据分析、供应链管理、智能预测等相关工作的科研人员与工程技术人员,尤其适合高校研究生及企业中从事智能零售与运营优化的研发人员。; 使用场景及目标:①应用于零售、电商、物流等行业中的商品销量预测任务,优化库存管理与补货决策;②为含噪声、异常点及时序突变的实际业务数据提供鲁棒的预处理与建模方案;③作为深度学习与鲁棒统计方法融合的典型案例,推动时序预测领域中模型可解释性与稳定性的研究发展。; 阅读建议:建议读者结合提供的Python代码深入理解在线RPCA与LSTM的集成机制,重点关注数据分解、特征提取与模型训练的衔接过程,并尝试在真实业务数据上进行复现与调参,以掌握其在不同噪声环境下的适应性与优化策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值