File类的作用:
Java的io包中定义了File类,用于对文件或文件夹的管理操作。
File类只能够用于表示文件或文件夹的信息(属性)和对该文件或文件夹的删除创建操作
(不能对内容进行访问)
通过创建File类对象可以用程序来操作电脑上的文件或文件夹。

File类的构造方法:
File(String path):通过指定的路径名字符串来创建一个新的File对象,抽象路径名是用来表示某个文件或文件夹的路径定位。
File(File parent,String path):根据parent父文件对象和path子文件名字符串来创建一个新的File对象。

File类的常用API
文件操作:
exists():判断文件是否存在:返回值为布尔值
getCanonicalPath() :获取当前文件的标准路径名 
separator:用于表示路径层级分割符,可以避免不同操作系统的分割符不一致的情况
createNewFile():在硬盘中创建一个文件
length():长度
lastModified():创建时间:new Date(File.lastModified())
delete():删除
getName():获得文件或文件夹名

文件夹操作:
exists():判断文件是否存在:返回值为布尔值
getCanonicalPath()  :获取当前文件的标准路径名 
separator:用于表示路径层级分割符,可以避免不同操作系统的分割符不一致的情况
boolean mkdir():创建文件夹
mkdirs():如果父文件夹不存在就一起创建
listFiles():该方法返回的路径名用于表示此抽象路径名的目录中的文件和目录的数组
listFiles(FileFilter filter) :该方法返回的路径名用于表示此抽象路径名的目录中的文件和目录的数组,并且带有FileFilter类型的过滤器
isDirectory():判断是否文件夹
delDirectory(pp):调用删除文件夹方法

  1. public void testFile01() throws IOException{
  2. //在计算机内存中创建一个File对象,用来对应计算机的存储硬盘中的当前文件夹
  3. File file = new File(".");
  4. System.out.println("当前文件夹是否存在:"+file.exists());
  5. System.out.println("查看当前文件夹的路径位置:"+file.getCanonicalPath());
  6. //与硬盘中是否存在文件夹没有直接联系,只是存在JVM中的对象
  7. File fileDemo = new File(file,"fileDemo");
  8. System.out.println("查看当前文件夹中是否存在fileDemo文件夹:"+fileDemo.exists());
  9. if(!fileDemo.exists()){
  10. fileDemo.mkdir();//创建出fileDemo文件夹
  11. }
  12.  
  13. File testFile = new File(file,"aa"+File.separator+"testFile");
  14. if(!testFile.exists()){
  15. // boolean flag = testFile.mkdir();
  16. // System.out.println("创建结果:"+flag);
  17. testFile.mkdirs();//创建文件夹,当父目录不存在会把父目录先创建出来
  18. }
  19.  
  20. File aFile = new File(fileDemo,"a.txt");
  21. System.out.println("a.txt在硬盘中是否存在:"+aFile.exists());
  22. if(!aFile.exists()){
  23. aFile.createNewFile();//在硬盘中创建一个文件
  24. }
  25. System.out.println("a.txt在硬盘中是否存在:"+aFile.exists());
  26. System.out.println("a.txt的标准路径为:"+aFile.getCanonicalPath());
  27. System.out.println("a.txt的文件长度为:"+aFile.length());
  28. System.out.println("a.txt的创建时间:"+new Date(aFile.lastModified()));
  29. /*
  30. * 删除文件对象表示的文件或文件夹,成功删除返回true。
  31. * 如果文件对象表示的是一个文件夹,删除的时候必须保证此文件夹是空文件夹才能删除
  32. */
  33. aFile.delete();
  34. //删除aa会失败
  35. File aa = new File(file,"aa");
  36. aa.delete();
  37. }
  1. public void testFile02(){
  2. File file = new File(".");//当前文件夹对象
  3. File[] files = null;
  4. if(file.exists()){
  5. //listFiles():查看当前文件夹下有什么子文件或子文件夹,如果文件夹路径为空,返回空
  6. //如果此路径名不是表示一个文件夹或者发生了I/O异常,也返回null
  7. files = file.listFiles();
  8. }
  9. for(File f:files){
  10. //getName():获得文件或文件夹名
  11. System.out.println(f.getName());
  12. }
  13. }
  1. public void testFile03() throws IOException{
  2. File path = new File(".");
  3. File pppp = new File(path,"pp"+File.separator+"ppp"+File.separator+"pppp");
  4. File demoFile = new File(pppp,"demo.txt");
  5. if(!pppp.exists()){
  6. pppp.mkdirs();//将父文件夹与子文件夹一起创建
  7. }
  8. if(!demoFile.exists()){
  9. demoFile.createNewFile();//创建文件
  10. }
  11. File pp = new File(path,"pp");
  12. delDirectory(pp);//调用删除文件夹方法下面没有文件则可以成功
  13. }
  1. //使用遍历方法删除文件夹,如果内部有文件则删除文件,防止无法删除文件夹
  2. public static void delDirectory(File dir) throws IOException{
  3. if(!dir.exists()){//如果文件夹不存在,抛出运行时异常
  4. throw new RuntimeException("文件夹"+dir+"不存在");
  5. }
  6. if(!dir.isDirectory()){//判断是否文件夹
  7. throw new RuntimeException(dir+"不是目录");
  8. }
  9. File[] subs = dir.listFiles();
  10. if(subs!=null&&subs.length>0){//遍历所有子文件和文件夹,删除里面内容
  11. //遍历所有的subs
  12. for(File f:subs){
  13. if(!f.isDirectory()){//不是文件夹就是文件
  14. System.out.println("文件名为:"+f.getName());
  15. if(!f.delete()){//如果删除失败则抛出异常,如果成功则不进来,文件也删掉了
  16. throw new IOException("无法删除文件"+f.getName());
  17. }
  18. }else{//文件夹处理
  19. System.out.println("开始处理文件夹"+f.getName());
  20. delDirectory(f);//调用删除文件夹方法,删除子文件夹
  21. System.out.println("子文件夹已经删除,开始删除该文件夹"+f.getName());
  22. f.delete();//删除完子文件和子文件夹后,需要删除当前的文件夹
  23. }
  24. }
  25. }
  26. dir.delete();//删除dir目录的内容
  27. }
  1. //使用过滤器过滤掉一部分文件,处理符合规则的文件
  2. public void testFile04(){
  3. File file = new File("src"+File.separator+"day07");//创建文件对象
  4. FileFilter filter = new FileFilter(){
  5. //该方法用于定义过滤规则,如果return true则表示符合规则的
  6. //返回值为false 则表示不符合规则的
  7. @Override
  8. public boolean accept(File pathname) {
  9. //matches匹配符合正则表达式规则的内容
  10. if(pathname.getName().matches(".*[.]java")){
  11. return true;
  12. }
  13. return false;
  14. }
  15. };
  16. //传入过滤器对象,过滤掉不符合规则的file对象
  17. File[] paths = file.listFiles(filter);
  18. for(File f:paths){
  19. System.out.println(f.getName());
  20. }
  21. }

File类基础的更多相关文章

  1. Java File类基础解析 1

    Java File类基础解析 1 File类的构造方法 public File(String pathname) :通过给定的路径名字符转换为抽象路径名来创建新的File实例 String path ...

  2. java IO流 之 FIle类基础

    package IO; import java.io.File;import java.io.IOException; public class FileIO { /** * 构建及获取文件名信息 * ...

  3. 黑马程序员——【Java基础】——File类、Properties集合、IO包中的其他类

    ---------- android培训.java培训.期待与您交流! ---------- 一.File类 (一)概述 1.File类:文件和目录路径名的抽象表现形式 2.作用: (1)用来将文件或 ...

  4. JAVA基础-File类

    一.File类概述 File类是文件和目录路径名的抽象表示形式.File类可以理解为一个文件路径或者文件夹路径的JAVA表现形式,而路径又可以分为绝对路径(是一个固定路径,从盘符开始),相对路径(相对 ...

  5. Java基础-IO流对象之File类

    Java基础-IO流对象之File类 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.IO技术概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下 ...

  6. Java基础之File类的使用

    Java基础之File类的使用 1.File类的构造方法和常用方法 2.对File中listFile(FileNameFilter name)学习 3.与File文件类相关的实现 File类的构造方法 ...

  7. Java 基础(三)| IO流之使用 File 类的正确姿势

    为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 File 类? java ...

  8. JAVA基础学习之流的简述及演示案例、用缓冲区方法buffer读写文件、File类对象的使用、Serializable标记接口(6)

    1.流的简述及演示案例输入流和输出流相对于内存设备而言.将外设中的数据读取到内存中:输入将内存的数写入到外设中:输出.字符流的由来:其实就是:字节流读取文字字节数据后,不直接操作而是先查指定的编码表. ...

  9. 黑马程序员——JAVA基础之File类,递归,打印流,合并切割流

    ------- android培训.java培训.期待与您交流! ---------- File类 用来将文件或者文件夹封装成对象 方便对文件与文件夹的属性信息进行操作. File对象可以作为参数传递 ...

随机推荐

  1. eclipse安装和配置

    一.下载eclipse eclipse下载页 (选择"Eclipse IDE for Java EE Developers",适用于web和android开发) 我用的是luna的 ...

  2. 用Python建立最简单的web服务器

    利用Python自带的包可以建立简单的web服务器.在DOS里cd到准备做服务器根目录的路径下,输入命令: python -m Web服务器模块 [端口号,默认8000] 例如: python -m ...

  3. photoshop拾色器如何恢复默认?

    今天在做设计图的时候,遇到一个问题,当时就把我给整蒙了. 问题是这样的,ps的调色器变成了这样,如下: 本来应该是这样: 可能有人已经看出两张图的不同之处了. 但是我当时忙的不得了,恩是不知道哪里除了 ...

  4. eclipse中SSH三大框架环境搭建<三>

    相关链接: eclipse中SSH三大框架环境搭建<一> eclipse中SSH三大框架环境搭建<二> 引言:通过上两篇文章我们已经可以掌握struts2和spring的环境的 ...

  5. foreach statement cannot operate on variables of type 'System.Web.UI.WebControls.Table' because 'System.Web.UI.WebControls.Table' does not contain a public definition for 'GetEnumerator'

    错误:foreach statement cannot operate on variables of type 'System.Web.UI.WebControls.Table' because ' ...

  6. Arcgis10安装说明

    注意无需覆盖任何文件,只需根据文章后面的内容自己随机建一个任意格式的文本文件即可   安装license manager,将后面的license 内容新建一个文本文档拷贝进去.使用这个文件作为lice ...

  7. DD_belatedPNG.js解决透明PNG图片背景灰色问题

    <!--[]> <script type="text/javascript" src="http://www.phpddt.com/usr/themes ...

  8. MyBatis源码分析(1)——整体依赖关系图

    后续补充更新

  9. JSP入门

    JSP简介 所谓JSP就是在网页文件中嵌入Java代码或JSP定义的一些标记.JSP是建立在Servlet上的,在执行时JSP容器会先将JSP文件转换成Servlet文件以及class 文件,然后再执 ...

  10. [Python] 利用Django进行Web开发系列(一)

    1 写在前面 在没有接触互联网这个行业的时候,我就一直很好奇网站是怎么构建的.现在虽然从事互联网相关的工作,但是也一直没有接触过Web开发之类的东西,但是兴趣终归还是要有的,而且是需要自己动手去实践的 ...