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 系统上,它为 '\\'。

 public class FileDemo {

   public static void main(String[] args) {

     //user.dir  System.getProperty(String key)
     System.out.println(System.getProperty("user.dir"));  

     //关于字符输出 \
     System.out.println('\n');
     System.out.println('\\');

     //File (String pathname) 创建File类对象
     File file = new File("d:\\a.txt");

     //把文件路径分成了两部分:parent 文件或目录所在的父目录
     // d:\b.txt  => parenet: d:\   +  b.txt
     //File (String parent, Sting child)

     File file1 = new File("d:\\", "b.txt");

     //File (File parent, String child)
     File file2 = new File(new File("d:\\"), "b.txt");

     //假设File类对象,文件目录已经确定
     //有种特殊情况
     File supplement = new File("\\test"); //E:\test
     System.out.println(supplement.getAbsolutePath());

   }

   public static void testFile(File parent) {

     String fileName = "a.txt";
     File file = new File(parent, fileName);
   }

 }

File类的成员方法:

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

 public class FileCreateDemo {

   public static void main(String[] args) throws IOException {

     File file = new File("d:\\a.txt");

     //public boolean createNewFile();
     boolean newFile = file.createNewFile();
     System.out.println("result = " + newFile);

     //在操作系统中,创建目录
     //File file1 = new File("d:\\dir\\a");
     //boolean mkdir = file1.mkdir();
     //System.out.println("result = " + mkdir);

     // mkdirs
     File file2 = new File("d:\\dir\\a");
     boolean mkdirs = file2.mkdirs();
     System.out.println("result = " + mkdirs);
   }
 }

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

 public class FileDeleteDemo {

   public static void main(String[] args) {

     //File file = new File("d:\\a.txt");
     //boolean delete = file.delete();
     //System.out.println("result = " + delete);
     // 即使文件不存在,也不会抛出异常

     //测试删除目录只能保证删除空目录
     File dir = new File("d:\\dir");
     boolean delete1 = dir.delete();
     System.out.println("result = " + delete1);
   }
 }
 public class FileRenameDemo {
   public static void main(String[] args) {
     File file = new File("d:\\a.txt");
     //File rename = new File("d:\\aaa.txt");
     //
     ////当目标File对象和我们的要改名的File,在同一目录下的时候,则简单的重命名
     //boolean b = file.renameTo(rename);
     //System.out.println("result = " + b);

     //如果目标File对象和我们的要改名的File,不在同一目录下,还会实现一个文件移动的功能
     File rename = new File("e:\\bbb.txt");
     boolean b = file.renameTo(rename);
     System.out.println("result = " + b);
   }
 }

File类过滤器接口:

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

 public class FileFilterDemo {

   public static void main(String[] args) {

     File dir = new File("d:\\dir");
     filterTXT(dir);

     //File[] listFiles(FileFilter filter)
     FileFilter filter = new FileFilter() {
       @Override
       public boolean accept(File pathname) {
         return pathname.getName().endsWith(".txt");
       }
     };

     File[] files = dir.listFiles(filter);

     for (int i = 0; i < files.length; i++) {
       //System.out.println(files[i].getName());
     }

     //ArrayList<File> files
     ArrayList<File> files1 = new ArrayList<>();
     //通过add方法向,该可以自动扩容的“数组”中存放元素
     files1.add(new File("test"));

     //输出的时候,输出方法会自动掉啊用每一个对象的toString()方法输出
     //System.out.println(files1);
   }

   /*
       获取执行目录下的 .txt文件信息
    */
   public static void filterTXT(File dir) {
     // 获取到指定目录下的所有的文件或者目录
     File[] files = dir.listFiles();

     //遍历所有的文件或者目录
     for (int i = 0; i < files.length; i++) {

       if (files[i].isFile()) {
         //当是文件的时候
         String name = files[i].getName(); // a.txt
         // 如果要用split方法分割字符串,'.'
         String[] split = name.split("\\.");

         if ("txt".equals(split[split.length - 1])) {
           System.out.println(files[i]);
         }
       }
     }
   }
 }

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. 2009年NOIP普及组复赛题解

    题目涉及算法: 多项式输出:模拟: 分数线划定:模拟.排序: 细胞分裂:质因数分解: 道路游戏:动态规划. 多项式输出 题目链接:https://www.luogu.org/problem/P1067 ...

  2. 日历价差(calendar spread)

    日历价差(calendar spread) 是指投资者买进到期日较远的期权 (简称远期期权),同时又卖出相同行权价格.相同数量但到期日较近的期权(简称近期期权),赚取两个不同期权隐含波动率的差价或者其 ...

  3. linux scull 代码write 方法

    write, 象 read, 可以传送少于要求的数据, 根据返回值的下列规则: 如果值等于 count, 要求的字节数已被传送. 如果正值, 但是小于 count, 只有部分数据被传送. 程序最可能重 ...

  4. 【ts】 VSCode自动编译TypeScript终端报错

    一.点击终端--运行任务--选择tsc:监视 - tsconfig.json后,终端报出了如下错误:error TS5058: The specified path does not exist 在网 ...

  5. java 实现类似spring的可配置的AOP框架

    一.工厂类BeanFactory: 1.工厂类BeanFactory负责创建目标类或代理类的实例对象,并通过配置文件实现切换. 2.getBean方法根据参数字符串返回一个相应的实例对象,如果参数字符 ...

  6. vue-learning:5-template-v-for

    5 列表渲染的指令v-for v-for on Array / Object / String / Number v-for on template v-for on expression v-for ...

  7. Numpy 返回数组大小

    import numpy as np a = [[1, 2], [3, 4], [5, 6]] b = np.array(a) len(a) # 3 len(b) # 3 np.size(a) # 3 ...

  8. Microsoft Ignite The Tour Beijing 记录: Learn Connect Explore

    坦率的说,这是我第一次以讲师的身份参加微软的Ignite大会.同时我也很开心能作为微软社区MVP来参加这个活动.而我的演讲主题也和我的社区有关——Unity.C#以及跨平台开发. 这篇用来记录MSIg ...

  9. 91.requests&BeautifulSoup

    转载:https://www.cnblogs.com/wupeiqi/articles/6283017.html equests Python标准库中提供了:urllib.urllib2.httpli ...

  10. JavaScript DOM事件对象的两个小练习 | 学习内容分享

    Event 对象 Event 对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标的位置.鼠标按钮的状态. 事件通常与函数结合使用,函数不会在事件发生前被执行! 本文用于记录个人学习过程 ...