File类

File类主要作用是对文件和目录的抽象表示,该类主要是对目录和文件进行创建、修改、删除、过滤等操作

File的构造器:

File(String pathname) //将路径字符串实例化File实例
File(String parent, String child)// 从父路径名和子路径名来构建file实例
File(File parent, String child) //根据父路径File实例和子路径名来构建实例

绝对路径和相对路径

绝对路径:从盘符开始的路径,表示一个完整的路径 (windows:C:\ linux/mac: / )
相对路径:不带盘符的路径即是相对路径 "."表示当前路径 “…”表示父路径

分隔符:

windows分隔符:
mac分割符:/
java中有常量分隔符:File.separator ;//根据系统不同自动生成对应分隔符
例如:String path = “test”+File.separator(分隔符)+“test.txt”;

File常见的方法:

创建:

createNewFile()在指定位置创建一个空文件,成功就返回true,如果已存在就不创建,然后返回false。mkdir() 在指定位置创建一个单级文件夹。mkdirs() 在指定位置创建一个多级文件夹。renameTo(File dest)如果目标文件与源文件是在同一个路径下,那么renameTo的作用是重命名,
如果目标文件与源文件不是在同一个路径下,那么renameTo的作用就是剪切,而且还不能操作文件夹。

删除:

delete() 删除文件或者一个空文件夹,不能删除非空文件夹,马上删除文件,返回一个布尔值。
deleteOnExit()jvm退出时删除文件或者文件夹,用于删除临时文件,无返回值。

判断:

exists() 文件或文件夹是否存在。
isFile() 是否是一个文件,如果不存在,则始终为false。
isDirectory() 是否是一个目录,如果不存在,则始终为false。
isHidden() 是否是一个隐藏的文件或是否是隐藏的目录。
isAbsolute() 测试此抽象路径名是否为绝对路径名。

获取:

getName() 获取文件或文件夹的名称,不包含上级路径。
getAbsolutePath()获取文件的绝对路径,与文件是否存在没关系
length() 获取文件的大小(字节数),如果文件不存在则返回0L,如果是文件夹也返回0L。
getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null。lastModified()获取最后一次被修改的时间。

文件夹相关:

static File[] listRoots()列出所有的根目录(Window中就是所有系统的盘符)
list() 返回目录下的文件或者目录名,包含隐藏文件。对于文件这样操作会返回null。
listFiles() 返回目录下的文件或者目录对象(File类实例),包含隐藏文件。对于文件这样操作会返回null。
list(FilenameFilter filter)返回指定当前目录中符合过滤条件的子文件或子目录。对于文件这样操作会返回null
listFiles(FilenameFilter filter)返回指定当前目录中符合过滤条件的子文件或子目录。对于文件这样操作会返回null。

过滤功能的接口方法:

public interface FilenameFilter {//参数为目录和指定过滤名称//返回结果 true: 可以返回  false:不能返回boolean accept(File dir, String name);
}

举例:

1.给定指定目录,将该目录下的文件按照树形结构打印

  public static void printTree(String filePath) {File head = new File(filePath);if(!head.exists()){//数据合法性检验System.out.println("数据不合法");return;}printTreeRealize(0,head);
}public static void printTreeRealize( int index,File head) {//index表示查询第几目录index++;//记录查询到第几目录了File[] files = head.listFiles(new FileFilter() {@Overridepublic boolean accept(File pathname) {return !pathname.isHidden();//过滤掉隐藏文件}});for (File file :files){String n = "-";for(int i = 1 ;i <index ;i++){//根据目录级别判断前面空格数量n = " "+n;}System.out.println(n+file.getName());//如果是文件夹继续进入查询if(file.isDirectory()){printTreeRealize(index,file);//递归实现}}}

2.指定起始路径下包含指定词的所有文件(非隐藏文件)

//path:指定的查询路径 filter关键字public static void searchFile(String path, String filter) {File head = new File(path);if (!head.exists()){//参数合法性检验System.out.println("无效文件目录");return;}searchFile1(head,filter);}public static void searchFile1(File head, String filter) {if(head.isFile()){//是文件if(head.getName().contains(filter)){//关键字匹配System.out.println(head.getAbsolutePath());}}else {File[] files = head.listFiles(new FileFilter() {@Overridepublic boolean accept(File pathname) {//过滤掉隐藏文件if (pathname.isHidden()) {return false;}return true;}});for (File file:files){searchFile1(file,filter);//递归实现深度查询}}}

File类及相关方法介绍相关推荐

  1. 黑马毕向东Java课程笔记(day20-1——20-17)IO流:File类及相关方法、递归、递归的相关练习、Properties、PrintWriter类与PrintStream类、合并流与切割流

    1.File类概述   File是文件和目录路径名的抽象表示形式. 用来将文件或者文件夹封装成对象,方便对文件与文件夹的属性信息进行操作.   前面说到的"流",它只能操作数据,想 ...

  2. 【.Net实用方法总结】 整理并总结System.IO中File类及其方法介绍

  3. java file_java开发之File类详细使用方法介绍

    File类简介 在 Java 中,File 类是 java.io 包中唯一代表磁盘文件本身的对象.File 类定义了一些与平台无关的方法来操作文件,File类主要用来获取或处理与磁盘文件相关的信息,像 ...

  4. java文件传输之文件编码和File类的使用

    ---恢复内容开始--- 我们知道,在用户端和服务端之间存在一个数据传输的问题,例如下载个电影.上传个照片.发一条讯息.在这里我们 就说一下文件的传输. 1.文件编码 相信大家小时候玩过积木(没玩过也 ...

  5. 小东吖 之 java File类

    File(文件类) 尽管java.io定义的大多数类是实行流式操作的,File类不是.它直接处理文件和文件系统.也就是说,File类没有指定信息怎样从文件读取或向文件存储:它描述了文件本身的属性.Fi ...

  6. java-IO流(1)-IO流和File类的介绍

    目录 1 IO流的概念 2 IO流体系结构 3Java中流的分 3.1按流向分 3.2按数据传输单位分 3.3按功能分 4File类介绍 4.1File类的作用 4.2常见的构造函数 4.3提供方法 ...

  7. java file类详解_Java File类详解及IO介绍及使用

    我是一个CPU:这个世界慢!死!了!,可以感受到CPU,内存和硬盘之间的速度比较. 文件的本质 OS(操作系统)的目的就是可以让上层程序可以通过一种统一的方式去拿到无论什么磁盘里的文件(即一段字节流) ...

  8. 02java进阶03-异常、线程、同步、线程池、Lambda表达式、File类、递归

    目录 一.异常 二.异常的处理 三.自定义异常 四.多线程 五.线程.同步 5.1.线程 5.2同步 5.3线程安全 5.4线程状态 六.等待唤醒机制 6.1 线程间通信 6.2 等待唤醒机制 6.3 ...

  9. JavaのFile类基础操作之问题

    在上一章节,介绍了File类的基础操作,比如文件的创建,文件的删除等等.这一章节,将介绍在File类基础操作中遇到的问题. 1.路径分割符问题 在实际的软件开发与运行过程中,往往都会在Windows环 ...

最新文章

  1. JqueryAjax异步加载在ASP.NET
  2. 使用FUSE挖掘文件上传漏洞
  3. Jenkins全新的UI体验-Blue Ocean
  4. [温故知新] 编程原则和模式
  5. 【数据结构与算法-java实现】三 Java数组类实现
  6. 调用 Windows 7 中英文混合朗读
  7. sketch如何做设计稿交互_sketch交互点击视觉标注方法|sketch如何实现交互点击的视觉标注 - PS下...
  8. android中timepicker 常用属性,android – 如何读取TimePicker选择的值?
  9. 使用Selenium获取当当网异步加载的部分分类数据
  10. word分栏对齐方法
  11. Aop ---- Introductions(简介)---xml实现
  12. Unity镜头光晕模拟开源库
  13. 太棒了,Github 上面星标10K+ 的阿里巴巴社招面试感悟!(附海量面试复习资料)
  14. flex布局实现骰子六面的示例
  15. vertica MySQL_Vertica数据库简介
  16. 还记得这门古老的编程语言么,送你一份perl书单!
  17. 阅读类APP会员页竞品分析
  18. C#事件中sender和e参数的理解
  19. 畅想物联网安全未来,几维安全让万物互联更安全
  20. sql server 2000安装程序配置服务器失败

热门文章

  1. ContentPlaceHolder必须放在具有 runat=server 的窗体标记内
  2. 复制介绍、复制的实用价值
  3. alloc、init你弄懂50%了吗?
  4. John细说PHP的验证码
  5. 数据仓库专题(23):总线矩阵的另类应用-Drill Down into a More Detailed Bus Matrix
  6. 2016,成为更好的自己
  7. Flex DataGrid可编辑对象实现Enter跳转
  8. 阿里巴巴分布式服务框架 Dubbo 团队成员梁飞专访
  9. 一个网站的诞生- MagicDict开发总结3 [日语字典数据结构]
  10. 大话移动开发之QT-Quick