File类的常用方法和练习
File类常用的判断方法
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date; /**
* File中常用的判断方法
*/
public class Test {
public static void main(String[] args) { File file1 = new File("java.txt");
//是否是文件
System.out.println(file1.isFile()); //是否是文件夹
System.out.println(file1.isDirectory()); //是否是隐藏的
System.out.println(file1.isHidden()); //是否存在
System.out.println(file1.exists()); File file = new File("java.txt");
//查看绝对路径
System.out.println(file.getAbsolutePath()); //查看相对路径
System.out.println(file.getPath()); //文件的大小 以字节形式返回
//tips:UTF-8编码 1个汉字=3个字节
System.out.println(file.length()); //最后修改时间
Date date = new Date(file.lastModified());
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
System.out.println(simpleDateFormat.format(date)); //打印同级目录下的所有文件和文件夹的名字
File file2 = new File("根目录");
String[] list = file2.list();
for (String name : list) {
System.out.println(name);
} //获取目录下的同级文件和文件夹的File对象
//通过for循环可以打印出文件的绝对路径
File[] files = file2.listFiles();
for (File f : files) {
System.out.println(f);
} }
}
File类的几个小练习
统计项目根目录下所有以.txt结尾的文件数量
import java.io.File; /**
* 统计根目录中所有以txt为结尾的文件的数量
*/
public class Test {
public static void main(String[] args) {
File file = new File("D:/JAVA/达人课项目/ssm-demo0(1.登陆功能)");
int count = 0;
String[] list = file.list();
for (int i = 0; i < list.length; i++) {
if (list[i].endsWith(".txt")) {
count++;
System.out.println(list[i]);
}
}
System.out.println(count);
}
}
统计项目根目录下所有以.txt结尾的文件数量(优化版)
import java.io.File; /**
* 统计根目录中所有以txt为结尾的文件的数量
*/
public class Test {
public static void main(String[] args) {
File file = new File("根目录");
File[] files = file.listFiles();
int count = 0;
for (File name : files) {
if (name.toString().endsWith(".txt")) {
if (name.isFile()) {
count++;
System.out.println(name);
}
}
}
System.out.println("以.txt为结尾的文件数量是" + count);
}
}
上面那个版本如果根目录下有文件的名字后缀是.txt的文件夹也会被统计进去,这样的话就用File类中的listFiles方法来返回File类型的数组,调用里面的isFile方法,如果是文件再统计数量.
输出指定目录内的全部文件,并且以缩进的格式打印出来
import java.io.File;
import java.util.Scanner; /**
* 输出指定目录下所有文件的名称,包括文件夹里的
*/
public class Test { private static int count = 0; public static void main(String[] args) {
findFile(getFile());
} public static void findFile(File file) {
File[] fileArray = file.listFiles();
for (int i = 0; i < fileArray.length; i++) {
for (int j = 0; j < count; j++) {
System.out.print("\t");
}
System.out.println(fileArray[i]);
if (i == fileArray.length - 1) {
count--;
}
if (fileArray[i].isDirectory()) {
count++;
findFile(fileArray[i]);
} }
} public static File getFile() {
System.out.println("请输入要显示名称的目录");
Scanner sc = new Scanner(System.in);
while (true) {
String s = sc.nextLine();
File file = new File(s);
if (!file.exists()) {
System.out.println("输入目录有误,请重新输入!");
} else if (file.isFile()) {
System.out.println("您输入的是文件的路径!请重新输入");
} else {
return file;
}
}
}
}
心得
主要难点有两个,一个是如何控制缩进增加和减少,一个是递归打印文件夹内的文件
File类的常用方法和练习的更多相关文章
- java中File类的常用方法总结
java中File类的常用方法 创建: createNewFile()在指定的路径创建一个空文件,成功返回true,如果已经存在就不创建,然后返回false. mkdir() 在指定的位置创建一个此抽 ...
- Java分享笔记:File类中常用方法的介绍
java.io包下的File类用于描述和创建一个文件或文件夹对象,只能对文件或文件夹做一些简单操作,不能修改文件的内容,功能比较有限.下面是对于File类中常用方法的程序演示. [1] 演示程序一 p ...
- .NET(C#) File类的常用方法
MSDN的File类 File类在MSDN:https://msdn.microsoft.com/zh-cn/library/system.io.file_methods(v=vs.110).aspx ...
- IO流3 --- File类的常用方法2 --- 技术搬运工(尚硅谷)
File类的判断功能 @Test public void test5(){ File file = new File("hello.txt"); //判断是否是文件目录 Syste ...
- IO流2 --- File类的常用方法1 --- 技术搬运工(尚硅谷)
File类的获取功能 @Test public void test2(){ File file1 = new File("hello.txt"); File file2 = new ...
- Day 13:File类的常用方法
路径问题: 绝对路径: 该文件在硬盘上 的完整路径.绝对路径一般都是以盘符开头的. 相对路径: 相对路径就是资源文件相对于当前程序所在的路径. . 当前路径 .. 上一级路径 注意: 如果程 ...
- java file类的常用方法和属性
1 常用方法 a.createNewFile方法 public boolean createNewFile() throws IOException 该方法的作用是创建指定的文件.该方法只 ...
- File类的常用方法
public static void GetFileInfo() { File file=new File("e:","two.txt ...
- File类之常用方法
package IoDemo; import java.io.File; import java.io.IOException; /** * @Title:FileTest * @Descriptio ...
随机推荐
- “全栈2019”Java第一百零九章:匿名内部类实现唯一抽象类或接口
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- MysqliDb 库的一些使用简单技巧(php)
一.分页功能 假设接口要接受输入:page, page_limit,key,value,table 来查询 table 中 key like value 的元组中以 page_limit 为 page ...
- Android IPC机制—Binder的工作机制
进程和线程的关系 IPC机制即为跨进程通信,是inter-Process Communication的缩写.是指两个进程之间进行通信.在说进程通信之前,我们的弄明白什么是线程,什么是进程.进程和线程是 ...
- javascript高逼格代码实现数组去重,JSON深度拷贝,匿名函数自执行,数字取整等
1.如何装逼用代码骂别人傻逼 (!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]] 2.如何优雅的用代 ...
- 为服务器设置固定IP地址
为服务器设置固定IP地址 1.获取超级管理员权限 命令:$ su - 输入root密码 2.判断哪个网卡有流量,或者确定需要设置哪个网卡的固定ip 命令:# ifconfig PS:可以查询哪些网卡有 ...
- 知名协作工具 Slack 换新 logo 啦!
简评:本文系译文.Slack 在自家 Blog 上解释了新的设计 -- 旧版的 logo 有 11 种颜色,在非白色背景的情况下,logo 不仅难看,而且很容易在多个地方上表现不一致. 新年换新装,S ...
- navicat for oracle 创建表ID字段的自动递增
Oracle数据库创建表ID字段的自动递增 将表t_uaer的字段ID设置为自增:(用序列sequence的方法来实现) ----创建表 Create table t_user( Id numbe ...
- python------对于面向对象的理解
python中一切皆为对象 其实面向对象没什么高大上的东西,只不过把我们平时对于事物的描述和动作系统的总结成了一个定义事物的方法而已. 我们平时向别人介绍一个他(她)从未见过的东西,会从外形和外貌特征 ...
- vue二级路由跳转后外部引入js失效问题解决方案
vue路由可以通过children嵌套,于是可以形成二级路由等等... 案例如下: routes: [ { path: '/', name: 'dy', component: dy, children ...
- 【SpringBoot+Mybatis+thymeleaf报错】Error resolving template "XXX", template might not exist or might not be accessible by any of the configured
解决方法一: 原因:在使用springboot的过程中,如果使用thymeleaf作为模板文件,则要求HTML格式必须为严格的html5格式,必须有结束标签,否则会报错. 在application.y ...