• File


    我们要想实现IO的操作,就必须知道硬盘上文件的表现形式。

    Java就提供了一个类File供我们使用。

    File  java.io.File    文件和目录路径名的抽象表示形式,未必真实存在

    1 构造方法

    public File(String pathname)  

    构造函数,pathname必须是完整的路径名称,他表示的文件可能存在,也可能不存在

    File(File parent, String child)  根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。

    File(String pathname)  通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。

    File(String parent, String child)  根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。

    e:\demo\a.txt封装成一个File对象

    public static void main(String[] args) {
    
      File file = new File("E:\demo\a.txt");
    
      File file2 = new File("E:\demo", "a.txt");
      
      File file3 = new File("e:\demo");
    
       File file4 = new File(file3, "a.txt");
    
      // 以上三种方式其实效果一样
    
    }
    

    2 separator  与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。

    static String separator 与系统有关的默认名称分隔符,为了方便,它被表示为一个字符

    String path = "d:"+File.separator+"test.txt";

    3 常见方法:

    • 创建功能:

    *public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了

    *public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了

    *public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来

    注意:你到底要创建文件还是文件夹,你最清楚,方法不要调错了。

     示例:

    // 需求:我要在e盘目录下创建一个文件夹demo
    
    File file = new File("e:\demo");
    
    System.out.println("mkdir:" + file.mkdir());
    View Code
     // 需求:我要在e盘目录demo下创建一个文件a.txt
    
    File file2 = new File("e:\demo\a.txt");
    
    System.out.println("createNewFile:" + file2.createNewFile());
    View Code
     // 需求:我要在e盘目录test下创建一个文件b.txt
    
     File file3 = new File("e:\test\b.txt");
    
     System.out.println("createNewFile:" + file3.createNewFile());
    
     Exception in thread "main" java.io.IOException: 系统找不到指定的路径。
    
     注意:要想在某个目录下创建内容,该目录首先必须存在。
    View Code
    // 需求:我要在e盘目录test下创建aaa目录
    
    File file4 = new File("e:\test\aaa");
    
    //System.out.println("mkdir:" + file4.mkdir());
    
    File file5 = new File("e:\test");
    
    File file6 = new File("e:\test\aaa");
    
    System.out.println("mkdir:" + file5.mkdir());
    
    System.out.println("mkdir:" + file6.mkdir());
    //级联创建文件夹
    
    File file7 = new File("e:\aaa\bbb\ccc\ddd");
    
    System.out.println("mkdirs:" + file7.mkdirs());
    View Code
    • 删除功能:public boolean delete()删除文件或空文件夹

    注意:

     A:如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。

     B:Java中的删除不走回收站。

     C:要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹

       deleteOnExit() 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录

     
    // 删除功能:我要删除a.txt这个文件
    
    File file3 = new File("a.txt");
    
    System.out.println("delete:" + file3.delete());
    
     
    
    // 删除功能:我要删除ccc这个文件夹
    
    File file4 = new File("aaa\bbb\ccc");
    
    System.out.println("delete:" + file4.delete());
    
     
    
    // 删除功能:我要删除aaa文件夹
    
    // File file5 = new File("aaa");
    
    // System.out.println("delete:" + file5.delete());
    
     
    
    File file6 = new File("aaa\bbb");
    
    File file7 = new File("aaa");
    
    System.out.println("delete:" + file6.delete());
    
    System.out.println("delete:" + file7.delete());
    View Code
    • 重命名功能:public boolean renameTo(File dest)

     如果路径名相同,就是改名。

     如果路径名不同,就是改名并剪切。

     * 路径以盘符开始:绝对路径    c:\a.txt

     * 路径不以盘符开始:相对路径 a.txt

    File file = new File("林青霞.jpg");

    // 需求:我要修改这个文件的名称为"东方不败.jpg"

    File newFile = new File("东方不败.jpg");

    System.out.println("renameTo:" + file.renameTo(newFile));

    File file2 = new File("东方不败.jpg");

    File newFile2 = new File("e:\林青霞.jpg");

    System.out.println("renameTo:" + file2.renameTo(newFile2));

    • 判断功能:

     * public boolean isDirectory():判断是否是目录

     * public boolean isFile()      :判断是否是文件

     * public boolean exists()      :判断是否存在

     * public boolean canRead()     :判断是否可读

     * public boolean canWrite()    :判断是否可写

     * public boolean isHidden()    :判断是否隐藏

    File file = new File("a.txt");

    System.out.println("isDirectory:" + file.isDirectory());// false

    System.out.println("isFile:" + file.isFile());// true

    System.out.println("exists:" + file.exists());// true

    System.out.println("canRead:" + file.canRead());// true

    System.out.println("canWrite:" + file.canWrite());// true

    System.out.println("isHidden:" + file.isHidden());// false

    • 获取功能:

     * public String getAbsolutePath():获取绝对路径

     * public String getPath():获取相对路径

     * public String getName():获取名称

     * public long length():获取长度。字节数

     * public long lastModified():获取最后一次的修改时间,毫秒值

    File file = new File("demo\test.txt");

    System.out.println("getAbsolutePath:" + file.getAbsolutePath());

    System.out.println("getPath:" + file.getPath());

    System.out.println("getName:" + file.getName());

    System.out.println("length:" + file.length());

    System.out.println("lastModified:" + file.lastModified());

    // 1416471971031

    Date d = new Date(1416471971031L);

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    String s = sdf.format(d);

    System.out.println(s);

    • 获取功能:

     * public String[] list():获取指定目录下的所有文件或者文件夹的名称数组

     * public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组

    // 指定一个目录

    File file = new File("e:\");

    String[] strArray = file.list();

    for (String s : strArray) {

    System.out.println(s);

    }

    File[] fileArray = file.listFiles();

    for (File f : fileArray) {

    System.out.println(f.getName());

    }

    • 文件操作

     public boolean exits()          文件是否存在

     public boolean createNewFile() 创建新的文件

     public boolean isFile()         测试此抽象路径名表示的文件是否是一个标准文件

         File f1=new File("e:\2.txt");

         if(!f1.exists()){

          try {   //不存在,创建

          System.out.println("No!");

     f1.createNewFile();

         } catch (IOException e) {

    e.printStackTrace();

         }

         }else{

          System.out.println("Yes!");

         }

    不积跬步无以至千里
  • 相关阅读:
    Android开发学习总结(一)——搭建最新版本的Android开发环境
    EntityFramework 6
    EntityFramework优缺点
    十分钟轻松让你认识Entity Framework 7
    SqlServer中的merge操作(转载)
    python打印即时输出的方法
    我的人工智能机器人的游戏
    网络编程的一些知识
    hdu4722 Good Numbers
    hdu4727 The Number Off of FFF
  • 原文地址:https://www.cnblogs.com/wihainan/p/4403608.html
Copyright © 2020-2023  润新知