File文件操作类

背景:

在Java语言里面提供有对于文件操作系统的支持,而这个支持就在java.io.File类中进行了定义,也就是说在整个java.io包里面,File类是唯一一个于文件本身操作(创建,删除,重命名等等)有关的类,而如果要想进行File类的操作,必须要提供有完整的路径,而后可以调用相应的方法进行处理。

1:File类的基本使用

2:使用File类创建一个文件夹(d:mldn.txt)

import java.io.File;public class JavaAPIDemo {public static void main(String[] args) throws Exception {File file = new File("d:\\mldn.txt");if (file.exists()) {file.delete();// 删除文件} else { // 文件不存在System.out.println(file.createNewFile()); // 创建新的文件}}
}
//true

import java.io.File;public class Test {public static void main(String[] args) throws Exception {File file = new File("d:" + File.separator + "mldn.txt");if (file.exists()) {file.delete();// 删除文件} else { // 文件不存在System.out.println(file.createNewFile()); // 创建新的文件}}
}
//true

2:File类操作深入

2,在使用File类进行文件处理的时候需要注意的是:程序->JVM->操作系统函数->文件处理;

所以在进行同一文件的反复删除或者创建的时候有可能会出现延迟的问题,所以这个时候做i好的方案是类别重名;

import java.io.File;public class JavaAPIDemo {public static void main(String[] args) throws Exception {File file = new File("d:" + File.separator + "hello" + File.separator + "demo" + File.separator + "message"+ File.separator + "mldn.txt");if (!file.getParentFile().exists()) {    // 父路径不存在file.getParentFile().mkdirs() ; // 创建父路径}if (file.exists()) {file.delete();// 删除文件} else { // 文件不存在System.out.println(file.createNewFile()); // 创建新的文件}}
}
//true

3:获取文件信息

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;class MathUtil {private MathUtil() {}public static double round(double num, int scale) {return Math.round(Math.pow(10, scale) * num) / Math.pow(10, scale);}
}public class JavaAPIDemo {public static void main(String[] args) throws Exception {File file = new File("d:" + File.separator + "my.jpg");System.out.println("文件是否可读:" + file.canRead());System.out.println("文件是否可写:" + file.canWrite());System.out.println("文件大小:" + MathUtil.round(file.length() / (double) 1024 / 1024, 2));System.out.println("最后的修改时间:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(file.lastModified())));System.out.println("是目录吗?" + file.isDirectory());System.out.println("是文件吗?" + file.isFile());}
}

4:列出文件内容

import java.io.File;public class JavaAPIDemo {public static void main(String[] args) throws Exception {File file = new File("d:" + File.separator);if (file.isDirectory()) { // 当前是一个目录File result [] = file.listFiles() ; // 列出目录中的全部内容for (int x = 0 ; x < result.length ; x ++) {System.out.println(result[x]);}}}
}
//运行结果
d:\$RECYCLE.BIN
d:\00MVC-EF-master
d:\2017.11.24
d:\2018.10.26
d:\2018.10.3 BAT不是梦
d:\2018.3.5杰哥分享的视频
d:\app
d:\BaiduNetdisk
d:\BaiduNetdiskDownload
d:\Baofeng
d:\BAT算法与数据结构
d:\C#学习笔记.docx
d:\CAJ
d:\Dict
d:\Eclipse
d:\Foxit Phantom
d:\Foxit Reader
d:\Git
d:\hello
d:\isual
d:\mldn.txt
d:\MyDownloads
d:\Oracle
d:\PADS3.19
d:\pagefile.sys
d:\Program Files
d:\Program Files (x86)
d:\ProgramData
d:\QLDownload
d:\qq
d:\QQBrowser
d:\qycache
d:\RAR
d:\SQL Server
d:\SQL Sever
d:\SQLServer2017Media
d:\StormMedia
d:\Sublime Text 3
d:\System Volume Information
d:\Typora
d:\Visual Studio
d:\WebApplication93
d:\Windows Kits
d:\winrar
d:\XMP
d:\大话数据库.pdf
d:\有道云笔记
d:\李铭师兄
d:\电池管理
d:\肖俊

5:File操作案例:列出指定目录中的全部文件

import java.io.File;public class Test {public static void main(String[] args) throws Exception {File file = new File("D:" + File.separator) ;    // 是一个目录listDir(file) ;}public static void listDir(File file) {if (file.isDirectory()) {    // 是一个目录File results [] = file.listFiles() ; // 列出目录中的全部内容if (results != null) {for (int x = 0 ; x < results.length ; x ++) {listDir(results[x]) ; // 继续依次判断}}}System.out.println(file);    // 获得完整路径}
}//运行结果如下图


**不要运行这个程序**
import java.io.File;public class JavaAPIDemo {public static void main(String[] args) throws Exception {File file = new File("D:" + File.separator + "mldnjava") ;    // 是一个目录listDir(file) ;}public static void listDir(File file) {if (file.isDirectory()) {    // 是一个目录File results [] = file.listFiles() ; // 列出目录中的全部内容if (results != null) {for (int x = 0 ; x < results.length ; x ++) {listDir(results[x]) ; // 继续依次判断}}}file.delete() ;}
}

6:File操作案例:批量修改文件名称


import java.io.File;
public class JavaAPIDemo {public static void main(String[] args) throws Exception {File file = new File("D:" + File.separator + "test") ;    // 是一个目录long start = System.currentTimeMillis() ;renameDir(file) ;long end = System.currentTimeMillis() ;System.out.println("本次操作所花费的时间:" + (end - start));}public static void renameDir(File file) {if (file.isDirectory()) {  // 是一个目录File results [] = file.listFiles() ; // 列出子目录中的内容if (results != null) {for (int x = 0 ; x < results.length ; x ++) {renameDir(results[x]) ;}}} else {if (file.isFile()) {   // 如果是文件则必须进行重命名String fileName = null ; if (file.getName().contains(".")) {fileName = file.getName().substring(0,file.getName().lastIndexOf(".")) + ".txt" ;} else {fileName = file.getName() + ".txt" ;}File newFile = new File(file.getParentFile(),fileName) ; // 新的文件名称file.renameTo(newFile) ; // 重命名}}}
}

在面试的过程中经常会出现给你一个路径而后让你进行名称或文件的批量修改,那么就采用以上的代码结构即可。

Java基础(五十二)-IO编程相关推荐

  1. Java基础(十二)

    合成设计模式的引出 引用传递实际应用 案例一(类关联结构) 有的人有一辆汽车,有些人坐公交:要求通过面向对象的设计来解决实现以上的这种关系转换. class Car{private String na ...

  2. Java基础语法十二 泛型程序设计

    1 意义 泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用. 常见应用 : ArrayList 2 K T V E ? object等的含义 类型变量使用大写形式 E – Element ( ...

  3. 重学java基础第二十二课:IDEA安装

  4. 重学java基础第十二课:计算机语言发展史

  5. 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条

    http://blog.csdn.net/terryzero/article/details/3797782 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条 标签: swing编程 ...

  6. 面渣逆袭:Redis连环五十二问,图文详解,这下面试稳了

    大家好,我是老三,面渣逆袭系列继续,这节我们来搞定Redis--不会有人假期玩去了吧?不会吧? 基础 1.说说什么是Redis? Redis是一种基于键值对(key-value)的NoSQL数据库. ...

  7. Java基础知识(二)(Object类的常用方法、日期时间类、System类、StringBuilder类、包装类、Collection集合、Iterator迭代器、泛型、list集Set接口...)

    文章目录 Java基础知识(二) 1.Object类的常用方法 1.1 toString方法 1.2 equals方法 1.3 Objects类 2.日期时间类 2.1 Date类 2.2 DateF ...

  8. JavaWeb学习总结(五十二)——使用JavaMail创建邮件和发送邮件

    JavaWeb学习总结(五十二)--使用JavaMail创建邮件和发送邮件 一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封简单的邮件包含邮件头和邮件体两 ...

  9. Java设计模式(十二) 策略模式

    策略模式介绍 策略模式定义 策略模式(Strategy Pattern),将各种算法封装到具体的类中,作为一个抽象策略类的子类,使得它们可以互换.客户端可以自行决定使用哪种算法. 策略模式类图 策略模 ...

  10. 章节十二:编程思维:如何debug

    章节十二:编程思维:如何debug 目录 章节十二:编程思维:如何debug 1. bug 1:粗心 2. bug 2:知识不熟练 3. bug 3:思路不清 4. bug 4:被动掉坑 5. 习题练 ...

最新文章

  1. 非科班出身获得软开职位
  2. Redhat 5 配置DHCP服务器
  3. 什么是人机对话模型?阿里小蜜团队写了1.5万字
  4. mysql读写分离_MySQL基于amoeba读写分离实验
  5. python观察内存和修改内存
  6. Python. 报错: TypeError: issubclass() arg 1 must be a class
  7. springboot集成与使用Sentinel
  8. linux vcenter6.5下载,vCenter 6.0更新至6.5
  9. 如何查看kafka每个话题一共分了几个分区_如何决定kafka集群中话题的分区的数量...
  10. SpringBoot2.0系列(1)----初识SpringBoot
  11. 【GNN】图网络|图神经网络(GNN)结构化数据分析
  12. 数据结构与算法(二):线性表、栈、树(二叉树,AVL树)、图
  13. win7 64位MMC管理控制台使用“远程桌面”
  14. autojs开发的安卓QQ最新版滑块登录识别脚本免费开源分享
  15. 物联网感知-分布式光纤振动传感主机实现基本原理
  16. 合并两个有序数组(Python)
  17. 5.0 数据库完整性详解(PRIMARY KEY、REFERENCES、CHECK、CONSTRAINT、DOMAIN、TRIGGER)
  18. linux 杀毒软件查杀结果,Linux杀毒软件(ClamAV)
  19. RNN神经网络模型综述
  20. 他整整用了两个月的时间,终于如愿的拿到阿里offer了!

热门文章

  1. 非阻塞connect用法
  2. CCL“中国法研杯”相似案例匹配评测竞赛 - TOP队伍攻略分享
  3. 如何在linux下玩lol_英雄联盟新手教程 教你怎么玩lol
  4. Bootstrap文字排版方面css实用类
  5. 谷歌浏览器任务栏图标变白解决办法
  6. 早上集合竞价抓涨停板,集合竞价抓涨停板公式
  7. Word页面视图下不显示内容但web视图下可以显示的问题
  8. 在企业中采用知识管理工具的好处
  9. Odoo12功能增强模块
  10. STM8S003F3 内部时钟初始化以及定时器做延时的使用