1.在不存在的文件夹下创建文件
//在当前模块下aaa文件下ddd下eee中创建一个e.txt文件
public class Demo2 {public static void main(String[] args) throws IOException {File file = new File("day11_myFile\\aaa\\ddd\\eee");//createNewFile()建立文件需要文件夹存在//如果文件不存在,则先创建出来if(!file.exists()){file.mkdirs();}//存在后,则在文件目录下创建文件File file1 = new File(file, "e.txt");System.out.println(file1.createNewFile());}
}
打印结果:
------------------------------------------------------------------
true
2.删除一个文件夹里面的所有内容
//删除一个文件夹里面的所有内容
public class Demo3 {public static void main(String[] args) {//指定删除文件A的路径//File A = new File("C:\\A");//deleteDir(A);}//删除文件夹的方法【删除的内容不会进回收站,直接在硬盘抹除】private static void deleteDir(File dir) {//获取文件夹中的内容File[] files = dir.listFiles();//2.长度为0返回的数组无法遍历//删除for (File file : files) {//是文件,则直接删除if(file.isFile()){file.delete();//如果不是文件,则不能直接删除,需要先删除文件夹里面的文件}else {//删除文件夹里面的文件deleteDir(file);//1.所有文件删完之后则参数为空文件夹传入,返回值为0}}//循环结束,则文件夹里面的内容删除完毕,只需删除空的文件夹即可dir.delete();//3.跳过中间执行删除空文件夹完成要求//空文件夹删除层级有几层则执行几次【从最深的层级空文件夹开始,到A本身结束】}
}
3.统计一个文件夹里面所有文件的后缀名和所对应的次数
//统计一个文件夹里面所有文件的后缀名和所对应的次数
public class Demo4 {public static void main(String[] args) {HashMap<String, Integer> map = new HashMap<>();getCount(new File("day11_myFile\\aaa"), map);//打印集合查看结果System.out.println(map);}private static void getCount(File dir, HashMap<String, Integer> map) {//获取目标文件夹中的内容String dirName;//变量在参与运算之前必须赋初值[此处不需要]File[] files = dir.listFiles();//判断数组是否为空[避免文件夹中有文件无权限访问或者其他为空的情况]if(files==null){return;}for (File file : files) {//遍历拿到每一个元素,并判断是否为文件if (file.isFile()) {//如果为文件,则获取文件的扩展名并添加到集合中String[] strArr = file.getName().split("\\.");//因为.表示任意元素,所以需要加\\//切割数组的最后一个元素为文件后缀名,将其定义为键dirName = strArr[strArr.length - 1];//判断该文件后缀在集合中是否存在//如果存在,则将键对应的值加一再覆盖原来的if (map.containsKey(dirName)) {//获取键对应的值+1Integer value = map.get(dirName);value = value + 1;//覆盖map.put(dirName, value);//否则不存在,则直接添加,初始值为1} else {map.put(dirName, 1);}//否则元素不为文件,则递归展开该文件夹,直到为文件再统计} else {getCount(file, map);}}}
}
打印结果:
----------------------------------------------------------------------
{txt=3, java=2}
4.写一个方法,求文件夹的大小
/*思路:下面的A文件夹的大小A文件夹- aa.txt文件- bb文件夹b1.txtb2.txtA的大小 = aa.txt大小 + bb文件夹大小*/
public class Demo6 {public static void main(String[] args) {//先指定操作文件File file = new File("day11_myIO\\aaa");long size = getSize(file);System.out.println(size);}private static long getSize(File dir) {long sum=0;//进入到文件内File[] files = dir.listFiles();//判断数组是否为空if(files==null){return sum;}//遍历得到每一个元素for (File file : files) {//判断是否为文件if(file.isFile()){//如果是,则得到文件的大小sum+=file.length();//如果不是则递归进入文件夹内部}else {sum+=getSize(file);}}return sum;}
}
打印结果:
-----------------------------------------------------------
126472134

File类对文件的操作应用相关推荐

  1. JSP中的文件操作:数据流、File类、文件浏览、目录操作、上传下载

    ​ 文件可以永久地存储信息,从本质上讲文件就是存放在盘上的一系列数据的集合.应用程序如果想长期保存数据,就必须将数据存储到文件中,这就涉及到文件的操作.而在编写网站应用程序的过程中,有许多地方要对文件 ...

  2. 1.4 File类(文件操作类)获取文件属性,创建和删除文件\目录,遍历目录

    在 Java 中,File 类是 java.io 包中唯一代表磁盘文件本身的对象,也就是说,如果希望在程序中操作文件和目录,则都可以通过 File 类来完成.File 类定义了一些方法来操作文件,如新 ...

  3. C#中File类中文件的读取写入

    C#中File类中文件的读取写入 注意:使用File读取写入文件非常简单,但FIle的操作方式决定只能读取小文件,读写时全部加载进行读取.读写大文件时建议使用文件流. 常用方法 //获取所有编码方式 ...

  4. File类遍历(文件夹)目录功能

    package com.learn.demo01.File;import java.io.File;/*File类遍历(文件夹)目录功能- public String[] list() :返回一个St ...

  5. Java使用File类生成文件报错:java.io.FileNotFoundException: C:\... (拒绝访问。)

    今天在手写动态代理的时候使用File类创建文件报错:java.io.FileNotFoundException: C:\... (拒绝访问.) public class Test {public st ...

  6. Java File类静态文件createTempFile(String file_name,String file_extension)方法,带有示例...

    File类静态文件createTempFile(String file_name,String file_extension) (File Class static File createTempFi ...

  7. C# Directoryinfo类:文件夹操作

    C# Directoryinfo类:文件夹操作 在 C# 语言中 Directory 类和 Directoryinfo 类都是对文件夹进行操作的.DirectoryInfo 类能创建该类的实例,通过类 ...

  8. 【Java】(二十四)File类(文件操作,文件夹操作,FileFilter接口);Properties属性集合

    继续上一章,学习JavaIO框架 [Java](二十三)IO框架:流的概念与分类,字节流(对象流[序列化.反序列化]),编码方式,字符流(打印流,转换流) 上一节的学习(字节流,字符流)都是对文件内容 ...

  9. Java File类(文件操作类)详解

    在 Java 中,File 类是 java.io 包中唯一代表磁盘文件本身的对象,也就是说,如果希望在程序中操作文件和目录,则都可以通过 File 类来完成.File 类定义了一些方法来操作文件,如新 ...

最新文章

  1. 如何在Java代码中去掉烦人的“!=null”
  2. John细说PHP的验证码
  3. 技术分享 | 混合云模式下SaaS端前端最佳实践
  4. 上古时期(大雾)的数据结构pdf
  5. 财经数据提取器上线拉
  6. LUNA16数据集肺结节显示亲测
  7. 如何生成草料二维码在手机查看微信效果
  8. 关于Myeclipse10的激活
  9. 【一周一算法】算法3:最常用的排序——快速排序
  10. ASV2011中文版本和英文版本的区别
  11. 苹果开发者账号分类详解
  12. python网校_《猎豹网校:快速掌握Python系统管理-53讲》
  13. Real-Time Rendering 4th Edition 实时渲染第四版 读书及翻译计划
  14. 努比亚(nubia) V18 NX612J 解锁BootLoader 并刷入recovery ROOT
  15. ftp下载工具 免费,3款绝对让你喜欢的免费ftp下载工具
  16. pandas已知数值怎么找位置_pandas.dataframe中根据条件获取元素所在的位置方法(索引)...
  17. ABB机器人线速度_ABB机器人设置程序开机自启动
  18. warning: this decimal constant is unsigned only in ISO C90问题的处理及理解
  19. R语言使用quantmod包的getSymbols函数从指定金融数据源获取指定时间段的股票数据、从雅虎金融读取著名的苹果公司的全部股票数据
  20. VR三维数字沙盘电子沙盘大数据可视化交互GIS系统开发教程第15课

热门文章

  1. P2183 [国家集训队]礼物(扩展卢卡斯)
  2. P2634 [国家集训队]聪聪可可(树形dp)
  3. Double Strings
  4. 牛客题霸 [ 有重复项数字的所有排列] C++题解/答案
  5. 牛客算法周周练4 题解
  6. Codeforces Round #762 (Div. 3)
  7. 「CEOI2019」魔法树(DP+差分启发式合并)
  8. Star Way To Heaven (prim最小生成树) // [ NOIP提高组 2014]飞扬的小鸟(DP)
  9. P6628-[省选联考 2020 B 卷] 丁香之路【欧拉回路,最小生成树】
  10. [2020.11.26NOIP模拟赛]勇者的后缀【SA,RMQ,主席树,二分】