File类概述:

File 类是 Java 中用于表示文件和目录路径名的抽象表示形式。它允许应用程序对文件和目录进行各种操作,如创建、删除、重命名以及获取文件属性等

.代表当前目录

 ..代表父目录

构造方法:

1.File(String pathname):根据文件路径创建File实例,路径可以是绝对路径和相对路径。

2.File(File parent,String Child):根据父目录加孩子文件路径创建File实例。

3.File(String parent,String child):根据父目录和孩子文件路径创建File实例,父目录用路径表示。

import java.io.File;

public class Demo1 {
    public static void main(String[] args) {
        File file = new File("test.txt");

        File file2 = new File(file,"test2.txt");

        File file3 = new File("d:/","test3.txt");
    }
}

相关方法:

getParent() :

获取 file 对象的父目录路径。返回值类型为String

        File file3 = new File("d:/","test3.txt");
        String test = file3.getParent();
        System.out.println(test);

getName:

获取 file 对象的纯文件名称。

        File file = new File("d:/","test.txt");
        String name = file.getName();
        System.out.println(name);

getPath() 和 getAbsolutePath()

获取 file 对象的  文件路径  和  绝对路径

        File file = new File("d:/","test.txt");
        String test1 = file.getPath();
        String test2 = file.getAbsolutePath();
        System.out.println(test1);
        System.out.println(test2);

getCanonicalPath()

(可能抛出IOexception异常):返回修饰过的绝对路径。

        File file = new File("d:/../test.txt");
        String test = file.getCanonicalPath();
        System.out.println(test);

由于d:/../test.txt 就相当于是 d:/test.txt ,这个方法会把冗余的路径优化掉,返回优化后的路径。

三个路径的区别:

getPath() 直接返回构造时传入的路径

getAbsoulatePath() 返回文件的绝对路径

getCanonicalPath() 返回优化后的路径

exists():

返回文件是否真实存在:

        File file = new File("d:/test");
        Boolean flg = file.exists();
        System.out.println(flg);

isDirectory() 和 isFile() 

判断 File 对象是否是一个目录/一个文件:

        File file = new File("d:/test");
        Boolean flg = file.isDirectory();
        Boolean flg2 = file.isFile();
        System.out.println(flg);
        System.out.println(flg2);

createNewFile()

根据File对象,创建一个File文件,成功后返回true

        File file = new File("d:/test.txt");
        Boolean flg = file.createNewFile();
        System.out.println(flg);

创建之后再次运行就变成了false

delete()

根据File对象,删除对应的文件,删除之后返回true

          File file = new File("d:/test.txt");
          Boolean flg = file.delete();
          System.out.println(flg);

deleteOnExit()

根据File对象删除对应文件,不过是等JVM运行结束之后才进行删除

        File file = new File("d:/test");
        file.deleteOnExit();

list()

返回File对象目录下的所有文件名,返回类型为 String[]

        File file = new File("d:Demo");
        for (String fileName:file.list()) {
            System.out.println(fileName);
        }

listFiles()

返回File对象目录下的所有文件,返回类型为 File[]

        File file = new File("d:/Demo");
        for (File fileN:file.listFiles()) {
            System.out.println(fileN.getName());
        }

mkdir()

创建File对象所代表的目录(单级目录),如果父目录不存在则创建失败

        File file = new File("d:Demo");
        file.mkdir();

mkdirs()

创建File对象所代表的目录(多级目录),可以创建中间目录

        File file = new File("d:Demo/Demo1/Demo2");
        file.mkdirs();

rename To(File desk)

进行文件改名操作:

        File file = new File("d:Demo");
        File file1 = new File("d:test");
        file.renameTo(file1);

变为:

canRead() 和 canWrite() 

判断用户是否有可读/可写操作:

        File file = new File("d:/test");
        Boolean flg = file.canRead();
        Boolean flg2 = file.canWrite();
        System.out.println(flg);
        System.out.println(flg2);

InputStream 

InputStream 是 Java 中用于读取字节数据的抽象基类,专注于数据的顺序读取操作

方法:

read()

读取一个字节的数据,如果读完了返回-1

read(byte[] b)

最多读取b.length字节的数据到b 中,返回实际读到的数量;-1代表读完了

read(byte[] b, int off, int len)

最多读取 len-off 字节的数据到 b 中,从off开始,返回实际读到的数量;-1代表以及读完了

close()

关闭字节流

InputStream 只是⼀个抽象类,要使⽤还需要具体的实现类。此处使用:FileInputStream

FileInputStream

构造方法:

FileInputStream(File file) 利用 File 文件构造输入流

FileInputStream(String name) 利用文件路径构造输入流

OutputStream

write(int b) 写⼊要给字节的数据

write(byte[] b) 将b这个字符数组中的数据全部写入

write(byte[] b, int off, int len) 将b这个字符数组中从off开始的 数据写⼊,⼀共写len个

close() 关闭字节流

flush() 将数据写入缓冲区,等 flush()刷新一下,就会成功写入

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐