JAVA_基础IO流(一)

IO流

File类的使用

  • java.io.File类:文件和文件目录路径的抽象表示形式,与平台无关。
  • File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。 如果需要访问文件内容本身,则需要使用输入/输出流。
  • 想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对 象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。
  • File对象可以作为参数传递给流的构造器。
  1. 如何创建File类的实例
    public File(String pathname):以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果 pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。

    File file1 = new File("hello.txt");// 相对于当前module
    File file2 = new File("F:\\Java\\JavaSenior\\month12-day07\\he.txt");// 绝对路径
    System.out.println(file1);// hello.txt
    System.out.println(file2);// F:\Java\JavaSenior\month12-day07\he.txt
    

    public File(String parent,String child):以parent为父路径,child为子路径创建File对象。

    File file3 = new File("F:\\Java\\JavaSenior","month12-day07");
    System.out.println(file3);// F:\Java\JavaSenior\month12-day07
    

    public File(File parent,String child):根据一个父File对象和子文件路径创建File对象。

    File file4 = new File(file3, "hi.txt");
    System.out.println(file4); // F:\Java\JavaSenior\month12-day07\hi.txt
    
  2. 相对路径:相较于某个路径下,指明的路径
    绝对路径:包含盘符在内的文件或文件路径

  3. 路径分隔符
    windows和DOS系统:\\
    unix和URL:/
    Java程序支持跨平台运行,因此路径分隔符要慎用。
    为了解决这个隐患,File类提供了一个常量: public static final String separator。根据操作系统,动态的提供分隔符。

    File file1 = new File("d:\\atguigu\\info.txt");
    File file2 = new File("d:" + File.separator + "atguigu" + File.separator + "info.txt");
    File file3 = new File("d:/atguigu");
    

File类的获取功能

public String getAbsolutePath():获取绝对路径 。
public String getPath() :获取路径 。
public String getName() :获取名称 。
public String getParent():获取上层文件目录路径。若无,返回null
public long length() :获取文件长度(即:字节数)。不能获取目录的长度。
public long lastModified() :获取最后一次的修改时间,毫秒值 。

如下方法适用于文件目录
public String[] list() :获取指定目录下的所有文件或者文件目录的名称数组 。
public File[] listFiles() :获取指定目录下的所有文件或者文件目录的File数组。

public void Test2() {
    File file1 = new File("hello.txt");
    File file2 = new File("F:\\OfficeFile\\JAVA_IO\\hi.txt");
    System.out.println(file1.getAbsolutePath());
    System.out.println(file1.getName());
    System.out.println(file1.getParent());
    System.out.println(file1.length());
    System.out.println(new Date(file1.lastModified()));
    System.out.println();
    System.out.println(file2.getAbsolutePath());
    System.out.println(file2.getName());
    System.out.println(file2.getParent());
    System.out.println(file2.length());
    System.out.println(file2.lastModified());
}
public void test3() {
    File file = new File("F:\\Java\\JavaSenior\\month12-day07");
    String[] list = file.list();
    for (String s : list) {
        System.out.println(s);
    }
    File[] files = file.listFiles();
    for (File s : files) {
        System.out.println(s);
    }
}

public boolean renameTo(File dest):把文件重命名为指定的文件路径。
file1.renameTo(file2) 为例:
要像保证返回true,需要file1在硬盘中是存在的,且file2不能在硬盘中存在。

public void test4() {
    File file1 = new File("hello.txt");
    File file2 = new File("F:\\OfficeFile\\JAVA_IO\\hi.txt");
    boolean renameTo = file1.renameTo(file2);
    System.out.println(renameTo);
}

File类常用方法

File类的判断功能

public boolean isDirectory():判断是否是文件目录。
public boolean isFile() :判断是否是文件。
public boolean exists() :判断是否存在。
public boolean canRead() :判断是否可读。
public boolean canWrite() :判断是否可写。
public boolean isHidden() :判断是否隐藏

public void test5() {
    File file1 = new File("hello.txt");

    System.out.println(file1.isDirectory());
    System.out.println(file1.isFile());
    System.out.println(file1.exists());
    System.out.println(file1.canRead());
    System.out.println(file1.canWrite());
    System.out.println(file1.isHidden());

    System.out.println();

    File file2 = new File("F:\\OfficeFile\\JAVA_IO");
    System.out.println(file1.isDirectory());
    System.out.println(file1.isFile());
    System.out.println(file1.exists());
    System.out.println(file1.canRead());
    System.out.println(file1.canWrite());
    System.out.println(file1.isHidden());
}

File类的创建硬盘中对应文件或目录

public boolean createNewFile() :创建文件。若文件存在,则不创建,返回false
public boolean mkdir() :创建文件目录。如果此文件目录存在,就不创建了。 如果此文件目录的上层目录不存在,也不创建。
public boolean mkdirs() :创建文件目录。如果上层文件目录不存在,一并创建。
public boolean delete():删除磁盘中的文件或者文件夹 删除注意事项: Java中的删除不走回收站。 要删除一个文件目录,请注意该文件目录内不能包含文件或者文件目录。

文件的创建:

public void test6() {
    File file1 = new File("Hi.txt");
    if (!file1.exists()) {
        try {
            boolean newFile = file1.createNewFile();
            if (newFile) System.out.println("创建成功");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }else {
        boolean delete = file1.delete();
        if (delete) System.out.println("删除成功");
    }
}

文件目录的创建:

public void test7() {
    File file1 = new File("F:\\OfficeFile\\JAVA_IO\\IO01\\io03");
    boolean mkdir = file1.mkdir();
    if (mkdir) System.out.println("创建成功1");

    File file2 = new File("F:\\OfficeFile\\JAVA_IO\\IO02\\io04");
    boolean mkdirs = file2.mkdirs();
    if (mkdirs) System.out.println("创建成功2");
}

FIle类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法,并未涉及到写入或读取文件内容的操作。如果需要读取或写入文件内容,必须使用IO流来完成。

posted @ 2021-01-04 09:52  TuoYingtao  阅读(87)  评论(0编辑  收藏  举报