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类的常用方法和练习的更多相关文章

  1. java中File类的常用方法总结

    java中File类的常用方法 创建: createNewFile()在指定的路径创建一个空文件,成功返回true,如果已经存在就不创建,然后返回false. mkdir() 在指定的位置创建一个此抽 ...

  2. Java分享笔记:File类中常用方法的介绍

    java.io包下的File类用于描述和创建一个文件或文件夹对象,只能对文件或文件夹做一些简单操作,不能修改文件的内容,功能比较有限.下面是对于File类中常用方法的程序演示. [1] 演示程序一 p ...

  3. .NET(C#) File类的常用方法

    MSDN的File类 File类在MSDN:https://msdn.microsoft.com/zh-cn/library/system.io.file_methods(v=vs.110).aspx ...

  4. IO流3 --- File类的常用方法2 --- 技术搬运工(尚硅谷)

    File类的判断功能 @Test public void test5(){ File file = new File("hello.txt"); //判断是否是文件目录 Syste ...

  5. IO流2 --- File类的常用方法1 --- 技术搬运工(尚硅谷)

    File类的获取功能 @Test public void test2(){ File file1 = new File("hello.txt"); File file2 = new ...

  6. Day 13:File类的常用方法

    路径问题: 绝对路径: 该文件在硬盘上 的完整路径.绝对路径一般都是以盘符开头的. 相对路径:  相对路径就是资源文件相对于当前程序所在的路径.  . 当前路径   .. 上一级路径  注意: 如果程 ...

  7. java file类的常用方法和属性

    1 常用方法       a.createNewFile方法 public boolean createNewFile() throws IOException 该方法的作用是创建指定的文件.该方法只 ...

  8. File类的常用方法

    public static void GetFileInfo()    {                File file=new File("e:","two.txt ...

  9. File类之常用方法

    package IoDemo; import java.io.File; import java.io.IOException; /** * @Title:FileTest * @Descriptio ...

随机推荐

  1. Learning Rich Features from RGB-D Images for Object Detection and Segmentation论文笔记

    相关工作: 将R-CNN推广到RGB-D图像,引入一种新的编码方式来捕获图像中像素的地心姿态,并且这种新的编码方式比单纯使用深度通道有了明显的改进. 我们建议在每个像素上用三个通道编码深度图像:水平视 ...

  2. JavaScript求数组Array的并集(javascript面试常见题目)

    var Utils = { joinArray:function(source,target){ for(var i = 0;i<source.length;i++){ var oa = sou ...

  3. [Swift实际操作]七、常见概念-(12)使用DispatchGroup(调度组)管理线程数组

    本文将为你演示调度组的使用,使用调度组可以将多个线程中的人物进行组合管理,可以设置当多个相同层次的任务完成之后,再执行另一项任务. 首先导入需要使用的界面工具框架 import UIKit 在控制台输 ...

  4. 下载 CentOS 7 镜像文件

    CentOS 7 镜像文件的下载地址 CentOS 官网:https://www.centos.org/ 点击“Get CentOS Now” 点击想要下载的ISO镜像,(目前仅有“DVD ISO”和 ...

  5. window7 下安卓开发环境搭建

    最新Win7下配置搭建安卓开发环境 注意:因为墙的原因 google的更新服务器需要改 hosts 你懂的.. 74.125.237.1       dl-ssl.google.com  不行就VPN ...

  6. FAQ of db2fmp messages in the db2diag.log

    http://www-01.ibm.com/support/docview.wss?uid=swg21470035 Technote (FAQ) Question What do these mess ...

  7. (转)MySQL高可用架构之MHA

    MySQL高可用架构之MHA  原文:http://www.cnblogs.com/gomysql/p/3675429.html 简介: MHA(Master High Availability)目前 ...

  8. 深入理解react中的虚拟DOM、diff算法

    文章结构: React中的虚拟DOM是什么? 虚拟DOM的简单实现(diff算法) 虚拟DOM的内部工作原理 React中的虚拟DOM与Vue中的虚拟DOM比较 React中的虚拟DOM是什么?   ...

  9. linux 打包 压缩 解压缩

    gzip gzip xxx文件 压缩文件xxx,后缀.gz 并且删除原来文件 gzip -tv xxx.gz 测试压缩文件压完整性 压缩当前文件夹所有文件: zip -r ./1.zip ./* -r ...

  10. GitHub与Git指令入门

    GitHub入门 创建账户 之前做代码版本控制都是在bitbucket上面的私有仓库.现在开源社区挺火的,想在github找些开源的工程学习一下,于是加入了github,这里记录一下入门的经历. 首先 ...