File类概述:文件和文件目录路径的抽象表达形式,与平台无关。
1.File能新建、删除、重命名文件和目录,但File不能访问文件内容本身。
如果需要访问文件内容本身,则需要使用输入/输出流。
2.想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,
但是Java程序中的一个File对象, 可能没有一个真实存在的文件或目录。
3.File对象可以作为参数传递给流的构造器。

File类的构造方法:

1. pathName: 表示一个文件路径的字符串表示 "d:\\a.txt"
都可以是绝对路径名或相对路径名。
2.绝对路径名是完整的路径名,不需要任何其他信息,
就可以定位它所表示的文件,在unix: 以"/",在windows:以"盘符:\\"

1. 文件路径分隔符:和操作系统有关
在 UNIX 系统上,此字段为 ':';在 Microsoft Windows 系统上,它为 ';'。
windows f:\a.txt;f:\b.txt
2. 名称分隔符
在 UNIX 系统上,此字段的值为 '/';在 Microsoft Windows 系统上,它为 '\\'。

  1. public class FileDemo {
  2.  
  3. public static void main(String[] args) {
  4.  
  5. //user.dir System.getProperty(String key)
  6. System.out.println(System.getProperty("user.dir"));
  7.  
  8. //关于字符输出 \
  9. System.out.println('\n');
  10. System.out.println('\\');
  11.  
  12. //File (String pathname) 创建File类对象
  13. File file = new File("d:\\a.txt");
  14.  
  15. //把文件路径分成了两部分:parent 文件或目录所在的父目录
  16. // d:\b.txt => parenet: d:\ + b.txt
  17. //File (String parent, Sting child)
  18.  
  19. File file1 = new File("d:\\", "b.txt");
  20.  
  21. //File (File parent, String child)
  22. File file2 = new File(new File("d:\\"), "b.txt");
  23.  
  24. //假设File类对象,文件目录已经确定
  25. //有种特殊情况
  26. File supplement = new File("\\test"); //E:\test
  27. System.out.println(supplement.getAbsolutePath());
  28.  
  29. }
  30.  
  31. public static void testFile(File parent) {
  32.  
  33. String fileName = "a.txt";
  34. File file = new File(parent, fileName);
  35. }
  36.  
  37. }

File类的成员方法:

创建功能:
public boolean createNewFile()
public boolean mkdir()
public boolean mkdirs()
当最后一级目录的父目录,不存在的时候,
mkdir创建失败, 但是mkdirs创建会成功
mkdir vs mkdirs
mkdir:当要创建的目录的父目录不存在的时候,
不会自动创建父目录,然后自动创建目标目录
mkdirs: 可以自动为目标目录创建不存在的父目录

  1. public class FileCreateDemo {
  2.  
  3. public static void main(String[] args) throws IOException {
  4.  
  5. File file = new File("d:\\a.txt");
  6.  
  7. //public boolean createNewFile();
  8. boolean newFile = file.createNewFile();
  9. System.out.println("result = " + newFile);
  10.  
  11. //在操作系统中,创建目录
  12. //File file1 = new File("d:\\dir\\a");
  13. //boolean mkdir = file1.mkdir();
  14. //System.out.println("result = " + mkdir);
  15.  
  16. // mkdirs
  17. File file2 = new File("d:\\dir\\a");
  18. boolean mkdirs = file2.mkdirs();
  19. System.out.println("result = " + mkdirs);
  20. }
  21. }

删除功能:
public boolean delete()
如果此路径名表示一个目录,则该目录必须为空才能删除。

  1. public class FileDeleteDemo {
  2.  
  3. public static void main(String[] args) {
  4.  
  5. //File file = new File("d:\\a.txt");
  6. //boolean delete = file.delete();
  7. //System.out.println("result = " + delete);
  8. // 即使文件不存在,也不会抛出异常
  9.  
  10. //测试删除目录只能保证删除空目录
  11. File dir = new File("d:\\dir");
  12. boolean delete1 = dir.delete();
  13. System.out.println("result = " + delete1);
  14. }
  15. }
  1. public class FileRenameDemo {
  2. public static void main(String[] args) {
  3. File file = new File("d:\\a.txt");
  4. //File rename = new File("d:\\aaa.txt");
  5. //
  6. ////当目标File对象和我们的要改名的File,在同一目录下的时候,则简单的重命名
  7. //boolean b = file.renameTo(rename);
  8. //System.out.println("result = " + b);
  9.  
  10. //如果目标File对象和我们的要改名的File,不在同一目录下,还会实现一个文件移动的功能
  11. File rename = new File("e:\\bbb.txt");
  12. boolean b = file.renameTo(rename);
  13. System.out.println("result = " + b);
  14. }
  15. }

File类过滤器接口:

abstract boolean accept(File f) 此过滤器是否接受给定的文件。
当accept返回为true,满足过滤条件 accept方法返回false, 不满足过滤条件。
File[] listFiles(FileFilter filter) 用Filefileter对象,来指明一个对File的一个过滤条件。
ArrayList<File> files 就可以看成是一个可以动态扩容数组,放的是File类型的对象。

  1. public class FileFilterDemo {
  2.  
  3. public static void main(String[] args) {
  4.  
  5. File dir = new File("d:\\dir");
  6. filterTXT(dir);
  7.  
  8. //File[] listFiles(FileFilter filter)
  9. FileFilter filter = new FileFilter() {
  10. @Override
  11. public boolean accept(File pathname) {
  12. return pathname.getName().endsWith(".txt");
  13. }
  14. };
  15.  
  16. File[] files = dir.listFiles(filter);
  17.  
  18. for (int i = 0; i < files.length; i++) {
  19. //System.out.println(files[i].getName());
  20. }
  21.  
  22. //ArrayList<File> files
  23. ArrayList<File> files1 = new ArrayList<>();
  24. //通过add方法向,该可以自动扩容的“数组”中存放元素
  25. files1.add(new File("test"));
  26.  
  27. //输出的时候,输出方法会自动掉啊用每一个对象的toString()方法输出
  28. //System.out.println(files1);
  29. }
  30.  
  31. /*
  32. 获取执行目录下的 .txt文件信息
  33. */
  34. public static void filterTXT(File dir) {
  35. // 获取到指定目录下的所有的文件或者目录
  36. File[] files = dir.listFiles();
  37.  
  38. //遍历所有的文件或者目录
  39. for (int i = 0; i < files.length; i++) {
  40.  
  41. if (files[i].isFile()) {
  42. //当是文件的时候
  43. String name = files[i].getName(); // a.txt
  44. // 如果要用split方法分割字符串,'.'
  45. String[] split = name.split("\\.");
  46.  
  47. if ("txt".equals(split[split.length - 1])) {
  48. System.out.println(files[i]);
  49. }
  50. }
  51. }
  52. }
  53. }

Java之File类用法总结的更多相关文章

  1. Java中File类的基本用法

    File类的基本用法 java.io.File类:代表文件和目录.在开发中,读取文件.生成文件.删除文件.修改文件的属性时经常会用到此类. File类的常用构造方法:public File(Strin ...

  2. Java之File类

    一.初见File类 java.io.File类代表系统中的文件(文件或目录) 常用构造方法 File(String pathname) File(String parent, String child ...

  3. java.io.File类

    java.io.File类 1.凡是与输入.输出相关的类.接口等都定义在java.io包下 2.File是一个类.能够有构造器创建其对象.此对象相应着一个文件(.txt .avi .doc .ppt ...

  4. JAVA之File类创建对象构造函数传参数需要注意的几点

    java中File类用于创建一个文件对象. 首先看一段代码: 1. package MyText1; import java.io.File; public class MyText1 { publi ...

  5. 设计模式 - 装饰者模式(Decorator Pattern) Java的IO类 用法

    装饰者模式(Decorator Pattern) Java的IO类 用法 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26716 ...

  6. java.io.File类操作

    一.java.io.File类 String path="E:/222/aaa";//路径 String path1="aaa.txt"; File file= ...

  7. Java文件File类学习总结

    java.io.File类 代表文件和目录,在开发中,读取文件.生成文件.删除文件.修改文件的属性都会用到该类. 常见构造方法: public File(String pathName){} 以pat ...

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

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

  9. Java 中File类的createNewFile()与createTempFile(), delete和deleteOnExit区别

    1. Java 中File类的createNewFile()与createTempFile()的区别 最近,在看代码时看到了一个方法, File.createTempFile() ,由此联想到File ...

随机推荐

  1. JavaScript中判断整数的方法

    一.使用取余运算符判断 任何整数都会被1整除,即余数是0.利用这个规则来判断是否是整数. 1 2 3 4 5 function isInteger(obj) {     return obj%1 == ...

  2. [转]SpringBoot整合Swagger2以及生产环境的安全问题处理

    1.创建springboot项目 https://www.cnblogs.com/i-tao/p/8878562.html 这里我们使用多环境配置: application-dev.yml(开发环境) ...

  3. while循环计算1-100和,1-100内偶数/奇数/被整除的数的和

    文章地址 https://www.cnblogs.com/sandraryan/ <!DOCTYPE html> <html lang="en"> < ...

  4. win10 uwp 在 VisualStudio 部署失败,找不到 Windows Phone 可能的原因

    在我使用 VisualStudio 调试的时候,发现我插入了手机,但是 VisualStudio 在部署的时候找不到手机. 可能的原因是 手机禁用了连接,第二个原因是可能手机驱动没正确让 Visual ...

  5. H3C DHCP服务器可选配置

  6. ESB总线的核心架构

    根据近期对开源ESB产品的研究,已经对Oracle和Tibco的ESB总线产品的实施经验积累,对ESB总线的核心产品架构有了进一步的清晰认识,将ESB的核心架构整理为上图,上图中看到的内容也是做为一款 ...

  7. 读《Effect Java中文版》

    读<Effect Java中文版> 译者序 序 前言 第1章引言 1   第2章创建和销毁对象 4 第1条:考虑用静态工厂方法代替构造函数 4 第2条:使用私有构造函数强化singleto ...

  8. 2019-2-27-win10-uwp-去掉-Flyout-边框

    title author date CreateTime categories win10 uwp 去掉 Flyout 边框 lindexi 2019-02-27 17:48:46 +0800 201 ...

  9. 2019-8-31-How-to-fix-nuget-Unrecognized-license-type-MIT-when-pack

    title author date CreateTime categories How to fix nuget Unrecognized license type MIT when pack lin ...

  10. Linux 内核热插拔操作

    热插拔事件的实际控制是通过一套存储于 kset_hotplug_ops 结构的方法完成. struct kset_hotplug_ops { int (*filter)(struct kset *ks ...