File类对文件的操作应用

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

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

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

相关文章

一张图告诉你什么是系统架构师

转载自 一张图告诉你什么是系统架构师这张图从架构师的综合能力、岗位认识、岗位职责等方面&#xff0c;清楚的画出了作为一个架构的基本准则。人人都想成为架构师&#xff0c;可作为架构你达到了上面的要求了吗&#xff1f; 系统架构师是个神奇的岗位。为什么这么说&#xff0…

机器学习和统计里面的auc怎么理解?

转自&#xff1a; https://www.zhihu.com/question/39840928 作者&#xff1a;小小丘 &#xff08;该作者对 auc的意义 讲得非常棒, 感谢付出&#xff09; 链接&#xff1a;https://www.zhihu.com/question/39840928/answer/84906286 来源&#xff1a;知乎 著作权归作者所有。…

IO流总述

IO流分类 1)按照流向分类&#xff1a; 输入流&#xff1a;读取数据用的 输出流&#xff1a;写数据用的 2)按照读写的数据分类(体系结构) <1>字节流[读写任何类型的文件(任何文件底层都是字节数据)] 字节输入流&#xff1a;IntputStream(抽象类) –FileInuptStream: 读取…

分布式ID生成器的解决方案总结

转载自 分布式ID生成器的解决方案总结在互联网的业务系统中&#xff0c;涉及到各种各样的ID&#xff0c;如在支付系统中就会有支付ID、退款ID等。那一般生成ID都有哪些解决方案呢&#xff1f;特别是在复杂的分布式系统业务场景中&#xff0c;我们应该采用哪种适合自己的解决方案…

IO流相关应用

1.1.字节流复制文件 //运用字节输入输出流将a.txt文件复制到b.txt中 public class Demo1 {public static void main(String[] args) throws IOException {//创建输入流对象FileInputStream fis new FileInputStream("day11_myIO\\a.txt");//可以使用BufferedInputS…

回归模型和分类模型的区别

转自&#xff1a; https://www.zhihu.com/question/21329754 分类和回归的区别在于输出变量的类型。 定量输出称为回归&#xff0c;或者说是连续变量预测&#xff1b; 定性输出称为分类&#xff0c;或者说是离散变量预测。 举个例子&#xff1a; 预测明天的气温是多少度&…

java计算混淆矩阵(分类指标:查准率P,查全率R,P和R的调和均值F1,正确率A)

【0】README 本文使用 java 计算混淆矩阵&#xff0c;并利用 混淆矩阵值计算 分类指标&#xff1b;通用分类指标有&#xff1a; 查准率&#xff0c;查全率&#xff0c;查准率和查全率的调和均值F1值&#xff0c;正确率&#xff0c; AOC&#xff0c; AUC等&#xff1b;本文计算…

什么是CPU密集型、IO密集型?

转载自 什么是CPU密集型、IO密集型&#xff1f;CPU密集型&#xff08;CPU-bound&#xff09; CPU密集型也叫计算密集型&#xff0c;指的是系统的硬盘、内存性能相对CPU要好很多&#xff0c;此时&#xff0c;系统运作大部分的状况是CPU Loading 100%&#xff0c;CPU要读/写I/O(硬…

Properties类与IO流

1.概念 Properties是Map的子类&#xff0c;是一个双列集合&#xff0c;键和值都是字符串类型。Map集合的方法它都能使用&#xff1b; 但是推荐是Properties自己特有的方法&#xff0c;对集合进行操作。 2.特有方法 //properties属于Map集合【该集合一般添加字符串键值对】 /…

什么是无监督学习(监督学习,半监督学习,无监督聚类)?

作者&#xff1a;王丰 链接&#xff1a;https://www.zhihu.com/question/23194489/answer/25028661 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 这个问题可以回答得很简单&#xff1a;是否有监督&#xff08;sup…

Java中的6颗语法糖

转载自 Java中的6颗语法糖语法糖&#xff08;Syntactic Sugar&#xff09;&#xff0c;也称糖衣语法&#xff0c;指在计算机语言中添加的某种语法&#xff0c;这种语法对语言本身功能来说没有什么影响&#xff0c;只是为了方便程序员的开发&#xff0c;提高开发效率。说白了&am…

其他流总述

1.转换流 InputStreamReader: 把InputStream转换为Reader&#xff0c;可以指定编码表 OutputStreamWriter: 把OutputStream转换为Writer&#xff0c;可以指定编码表 //转换流[用于指定编码表读入或写出] public class Demo1 {public static void main(String[] args) throws …

如何查阅相关工作所用到的文献资料

以百度学术为例。 step1&#xff1a;百度学术里输入 最关键的paper 名称&#xff0c;并点击 被引量链接&#xff1b; step2&#xff1a;通过最近年份 或 其他条件 筛选paper &#xff08;注意看发表期刊或会议的级别&#xff09; step3&#xff1a;主要看paper的摘要或 intro&…

递归算法介绍及Java应用实战

转载自 递归算法介绍及Java应用实战 什么是递归算法 递归算法是把问题转化为规模缩小了的同类问题的子问题&#xff0c;然后递归调用函数&#xff08;或过程&#xff09;来表示问题的解。一个过程(或函数)直接或间接调用自己本身&#xff0c;这种过程(或函数)叫递归过程(或函数…

K最近邻分类器

转自&#xff1a; http://www.cnblogs.com/qwertWZ/p/4582096.html 本章介绍了《机器学习实战》这本书中的第一个机器学习算法&#xff1a;k-近邻算法&#xff0c;它非常有效而且易于掌握。首先&#xff0c;我们将探讨k-近邻算法的基本理论&#xff0c;以及如何使用距离测量的方…

多线程安全问题1

1.问题的产生 原因&#xff1a;多个线程操作同一个共享数据。 原理&#xff1a;多个线程在访问共享数据时&#xff0c;由于CPU的随机性&#xff0c;一个线程还没有执行完&#xff0c;执行权被其他线程抢走了&#xff0c;这个时候就有可能出现线程安全问题。 解决方式&#xff…

Java父类强制转换子类原则

转载自 Java父类强制转换子类原则最近&#xff0c;微信群友在讨论子类父类的转换问题&#xff0c;其实不难&#xff0c;给大家用实例来说明一下就很明了了。 我们知道Java中子类转换成父类是没有任何问题的&#xff0c;那父类可以转换成子类吗&#xff1f; 来看下面这段程序&am…

生产者和消费者案例

1.案例描述 这里以吃饭为例&#xff0c;假设有一个桌子&#xff0c;用来存汉堡包&#xff0c;然后有厨师和消费者&#xff0c;厨师往桌子上放汉堡包&#xff0c;消费者从桌子上取走汉堡包。当两者在一个时间段同时进行多次自己的操作时&#xff0c;很明显这就是多线程编程的生…

用Python开始机器学习(4:KNN分类算法)

转自&#xff1a; http://blog.csdn.net/lsldd/article/details/41357931 1、KNN分类算法 KNN分类算法&#xff08;K-Nearest-Neighbors Classification&#xff09;&#xff0c;又叫K近邻算法&#xff0c;是一个概念极其简单&#xff0c;而分类效果又很优秀的分类算法。 他的…

Mybatis传递多个参数的4种方式

转载自 Mybatis传递多个参数的4种方式&#xff08;干货&#xff09;现在大多项目都是使用Mybatis了&#xff0c;但也有些公司使用Hibernate。使用Mybatis最大的特性就是sql需要自己写&#xff0c;而写sql就需要传递多个参数。面对各种复杂的业务场景&#xff0c;传递参数也是一…