File及典型案例

File

File对象表示一个路径,可以是文件的路径,也可以是文件夹的路径

这个路径可以是存在的,也允许不存在

常见的构造方法

        图来自黑马程序员网课

package com.lazyGirl.filedemo;import java.io.File;public class Demo1 {public static void main(String[] args) {String str = "E:\\bishe\\paper1\\SignalToNoisy\\a.txt";File file = new File(str);System.out.println(file);String parent = "E:\\bishe\\paper1\\SignalToNoisy";String child = "a.txt";File file1 = new File(parent, child);System.out.println(file1);File file2 = new File(parent + "\\" + child);System.out.println(file2);File parent2 = new File(parent);String child2 = "a.txt";File file3 = new File(parent, child2);System.out.println(file3);}
}

        输出:

 绝对路径是带盘符的,相对路径是不带盘符的,默认到当前项目下去找

常见成员方法

                图来自黑马程序员网课 

        

package com.lazyGirl.filedemo;import java.io.File;public class Demo2 {public static void main(String[] args) {File file1 = new File("E:\\bishe\\paper1\\SignalToNoisy");System.out.println(file1.exists());System.out.println(file1.isDirectory());System.out.println(file1.isFile());System.out.println();File file2 = new File("E:\\bishe\\paper1\\SignalToNoisy");System.out.println(file2.exists());System.out.println(file2.isDirectory());System.out.println(file2.isFile());System.out.println();File file3 = new File("E:\\bishe\\paper1\\SignalToNoisy\\10x_lymph_node_group_14_normalize.jpg");System.out.println(file3.exists());long len = file3.length();System.out.println(len);//单位字节System.out.println();File file4 = new File("E:\\bishe\\paper1\\SignalToNoisy");System.out.println(file4.exists());long len2 = file4.length();//无法获取文件夹大小System.out.println(len2 / 1024 / 1024);System.out.println();File file5 = new File("E:\\bishe\\paper1\\SignalToNoisy\\10x_lymph_node_group_14_normalize.jpg");String path1 = file5.getAbsolutePath();System.out.println(path1);System.out.println();File file6 = new File(path1);System.out.println(file6.getPath());System.out.println();File file7 = new File("E:\\bishe\\paper1\\SignalToNoisy\\a.txt");System.out.println(file7.getName());System.out.println();File file8 = new File("E:\\bishe\\paper1\\SignalToNoisy\\");System.out.println(file8.getName());System.out.println();File file9 = new File(path1);System.out.println(file9.lastModified());}
}

        输出:

 

                图来自黑马程序员网课 

package com.lazyGirl.filedemo;import java.io.File;
import java.io.IOException;public class Demo3 {public static void main(String[] args) throws IOException {File file = new File("a.txt");//该方法创建的是文件,如果路径中不包括后缀名,则创建一个没有后缀的文件System.out.println(file.createNewFile());File file2 = new File("\\aaa");//既可以创建单级文件也可以创建多级文件System.out.println(file2.mkdirs());//若删除的是文件,则直接删除//若删除的是空文件夹,则直接删除,不走回收站,若是有内容的文件夹,则删除失败file.delete();file2.delete();}
}

        输出:

        图来自黑马程序员网课

         注意:

        当调用者File表示的路径不存在时,返回null;

        当调用者File表示的路径是文件时,返回null

        当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数组

        当调用者File表示的路径是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,若包含隐藏文件,也返回

        当调用者File表示的路径是需要权限才能访问的文件夹时,返回null

        

package com.lazyGirl.filedemo;import java.io.File;public class Demo4 {public static void main(String[] args) {File file = new File("E:\\bishe\\paper1\\SignalToNoisy");File[] files = file.listFiles();for (File f : files) {System.out.println(f);}}
}

        输出:

 

        图来自黑马程序员网课 

package com.lazyGirl.filedemo;import java.io.File;
import java.io.FilenameFilter;public class Demo5 {public static void main(String[] args) {//        File[] arr = File.listRoots();
//        for (File f : arr) {
//            System.out.print(f + " ");
//        }
//        System.out.println();
//        System.out.println();
//
//        File file = new File("D:\\");
//        String[] files = file.list();
//        for (String s : files) {
//            System.out.println(s + " ");
//        }
//        System.out.println();File file1 = new File("D:\\");//文件名过滤器String[] files1 = file1.list(new FilenameFilter() {@Overridepublic boolean accept(File dir, String name) {File f = new File(dir, name);return f.isFile() && name.endsWith(".txt");}});for (String s : files1) {System.out.println(s + " ");}}
}
package com.lazyGirl.filedemo;import java.io.File;public class Demo6 {public static void main(String[] args) {File f = new File("D:\\");File[] files = f.listFiles();for (File file : files) {if (file.isFile() && file.getName().endsWith(".txt")){System.out.println(file);}}}
}

删除级联文件夹

package com.lazyGirl.filedemo;import java.io.File;public class Demo7 {public static void main(String[] args) {File file = new File("immutable\\aaa");deleteFile(file);}public static void deleteFile(File f) {File[] files = f.listFiles();for (File file : files) {if (file.isFile()) {file.delete();}else {deleteFile(file);}}f.delete();}
}

        求特定文件夹下文件的个数:

package com.lazyGirl.filedemo;import java.io.File;
import java.util.HashMap;
import java.util.Map;public class Test3 {public static void main(String[] args) {File file = new File("E:\\bishe");HashMap<String,Integer> hm = getCount(file);System.out.println(hm);}public static HashMap<String, Integer> getCount(File file){HashMap<String,Integer> map = new HashMap<>();File[] files = file.listFiles();if(files != null){for (File file1 : files) {if (file1.isFile()){String[] arr = file1.getName().split("\\.");if (arr.length == 2){String endName = arr[arr.length-1];if (map.containsKey(endName)){map.put(endName, map.get(endName)+1);}else {map.put(endName, 1);}}}else {HashMap<String,Integer> sonMap = getCount(file1);for (String s : sonMap.keySet()) {if (map.containsKey(s)){map.put(s, map.get(s)+sonMap.get(s));}else {map.put(s, sonMap.get(s));}}}}}return map;}
}

输出:

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/349465.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

easyexcel的简单使用(execl模板导出)

模板支持功能点 支持列表支持自定义头名称支持自定义fileName支持汇总 模板示例 操作 pom引入 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>${easyexcel.version}</version></dep…

github 本地仓库上传及报错处理

一.本地文件上传 这里为上传部分&#xff0c;关于gitbash安装配置&#xff0c;读者可自行搜索&#xff0c;由于已经安装完成&#xff0c;未进行截图保存&#xff0c;这里便不做赘述。 1.登录git账号并创建一个仓库 点击仓库打开后会看到这个仓库的网址链接&#xff08;这个链…

防止暴力破解,教你如何在登录失败后实施10分钟账户锁定策略!

最近&#xff0c;在服务器上发现了异常的登录尝试。尽管您的团队已经采取了强密码策略和其他安全措施来加固服务器&#xff0c;但恶意程序仍然通过暴力破解的方式试图多次尝试猜测正确的凭据以获取访问权限。为了增强系统的安全性&#xff0c;特别是防止此类暴力破解攻击&#…

项目实战--文档搜索引擎

在我们的学习过程中&#xff0c;会阅读很多的文档&#xff0c;例如jdk的API文档&#xff0c;但是在这样的大型文档中&#xff0c;如果没有搜索功能&#xff0c;我们是很难找到我们想查阅的内容的&#xff0c;于是我们可以实现一个搜索引擎来帮助我们阅读文档。 1. 实现思路 1…

ComfyUI-全民舞王-MusePose

musepose-demo 项目介绍 https://github.com/TMElyralab/MusePose发布的模型能够根据给定的姿势序列&#xff0c;生成参考图中人物的舞蹈视频&#xff0c;结果质量超越了同一主题中几乎所有当前开源的模型。发布pose align算法&#xff0c;以便用户可以将任意舞蹈视频与任意参…

第二届人工智能、系统与网络安全国际学术会议 (AISNS 2024)

第二届人工智能、系统与网络安全国际学术会议 (AISNS 2024&#xff09; 2024 2nd International Conference on Artificial Intelligence, Systems and Network Security 一、重要信息 大会官网&#xff1a;www.aisns.org &#xff08;点击参会/投稿/了解会议详情&#xff09…

基于GTX 8B10B编码的自定义PHY上板测试(高速收发器十四)

前文整理了GTX IP&#xff0c;完成了自定义PHY协议的收发模块设计&#xff0c;本文将通过光纤回环&#xff0c;对这些模块上板测试&#xff0c;首先需要编写一个用于生成测试数据的用户模块。 1、测试数据生成模块 本模块用于生成自定义PHY协议的测试数据&#xff0c;通过axi_…

什么是网站页面组件,有什么用处

1.组件是页面的组成部分 网站的每个页面都是由每个小组件拼接而成的&#xff0c;当然了&#xff0c;有一些网站并不是用小组件拼接的&#xff0c;但是像这些网站它是固定住标签&#xff0c;然后用js直接调用数据显示&#xff0c;这个就是定制化的体现。像那些用小组件组…

Elastic 索引结构-倒排索引

前言 Elastic 在数据库分类中一般被分为全文检索的数据库&#xff0c;那为什么这么区分呢&#xff1f;主要是因为其独特的索引结构 即倒排索引。 倒排索引 倒排索引先将文档中包含的关键字全部提取出来&#xff0c;然后再将关键字与文档的对应关系保存起来&#xff0c;最后再…

多模态大模型:识别和处理图片与视频的技术详解

多模态大模型&#xff1a;识别和处理图片与视频的技术详解 多模态大模型&#xff1a;识别和处理图片与视频的技术详解1. 什么是多模态大模型&#xff1f;2. 多模态大模型的基本架构3. 识别和处理图片3.1 图像特征提取3.2 图像分类与识别3.3 图像生成与增强 4. 识别和处理视频4.…

WebSocket 快速入门 与 应用

WebSocket 是一种在 Web 应用程序中实现实时、双向通信的技术。它允许客户端和服务器之间建立持久性的连接&#xff0c;以便可以在两者之间双向传输数据。 以下是 WebSocket 的一些关键特点和工作原理&#xff1a; 0.特点&#xff1a; 双向通信&#xff1a;WebSocket 允许服务…

什么是端口转发?路由器如何正确的设置端口转发和范围转发?(外网访问必备设置)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 端口转发 📒🚀 端口转发的应用场景💡 路由器如何设置端口转发(示例)💡 端口范围转发(示例)🎯 范围转发的应用场景🛠️ 设置范围转发📝 范围转发实操示例🎈 注意事项 🎈⚓️ 相关链接 ⚓️📖 介绍 📖 …

遗传算法求解车间调度问题(附python代码)

背景介绍 车间调度问题&#xff08;Job Shop Scheduling Problem, JSSP&#xff09;是一类经典的组合优化问题&#xff0c;它在制造业和生产管理中有着广泛的应用。JSSP 的目标是对车间中的一系列作业进行排程&#xff0c;以使得作业在不同机器上的加工顺序是最优的&#xff0…

什么是场外期权?场外期权有几种做法?

今天带你了解什么是场外期权&#xff1f;场外期权有几种做法&#xff1f;期权分为场内期权&#xff0c;场外期权。场内期权我们都知道&#xff0c;是在期货盘里购买的期权&#xff0c;但场外期权呢&#xff1f; 什么是场外期权&#xff1f; 场外期权是一种在交易所之外进行交易…

WinForm之TCP服务端

目录 一 原型 二 源码 一 原型 二 源码 using System.Net; using System.Net.Sockets; using System.Text;namespace TCP网络服务端通讯 {public partial class Form1 : Form{public Form1(){InitializeComponent();}TcpListener listener null;TcpClient handler null;Ne…

【Linux】从零开始配置新的服务器的机器学习环境

终端远程登录 ssh -p [端口号] [服务器用户名][服务器IP]或者 ssh [用户名][主机地址]第二种的前提是在.ssh\config中配置了host 安装文本编辑器vim 主要用于后续的文本编辑&#xff0c;个人比较习惯用vim&#xff0c;根据自己喜好选择 更新apt sudo apt update安装文本编辑…

陪诊小程序开发,陪诊师在线接单

近几年&#xff0c;陪诊师成为了一个新兴行业&#xff0c;在科技时代中&#xff0c;陪诊小程序作为互联网下的产物&#xff0c;为陪诊市场带来了更多的便利。 当下生活压力大&#xff0c;老龄化逐渐严重&#xff0c;年轻人很难做到陪同家属看病。此外&#xff0c;就诊中出现了…

【npm】安装报错(大多是版本冲突)

1.eslint版本太高&#xff0c;Vuex报错 我使用的是vue2.x&#xff0c;npm 安装Vuex3版本&#xff0c;控制台报错说eslint版本太高 解决办法&#xff1a;Vue2项目安装 vuex3 出现版本报错解决方法_安装 vuex3版本 eslint 报错-CSDN博客

在Lua解释器中注册自定义函数库

本文目录 1、引言2、注册原理3、实例4、程序验证 文章对应视频教程&#xff1a; 暂无&#xff0c;可以关注我的B站账号等待更新。 点击图片或链接访问我的B站主页~~~ 1、引言 在现代软件开发中&#xff0c;Lua因其轻量级、高效和可嵌入性而被广泛使用。作为一种灵活的脚本语言…

MyBatis使用 PageHelper 分页查询插件的详细配置

1. MyBatis使用 PageHelper 分页查询插件的详细配置 文章目录 1. MyBatis使用 PageHelper 分页查询插件的详细配置2. 准备工作3. 使用传统的 limit 关键字进行分页4. PageHelper 插件&#xff08;配置步骤&#xff09;4.1 第一步&#xff1a;引入依赖4.2 第二步&#xff1a;在m…