欢迎访问宙启技术站
智能推送

如何使用Java中的File和FileWriter函数来读写文件?

发布时间:2023-06-14 21:13:12

在Java中,File和FileWriter是两个常用的类,用于访问和读写文件。本文将介绍如何使用这两个类来进行文件操作。

1. File类

File类是Java中代表文件或目录的抽象路径名的类。使用File类可以访问文件的属性、创建、删除、重命名等操作。下面是File类的常用方法:

1.1 构造方法

    public File(String pathname)

    public File(String parent, String child)

    public File(File parent, String child)

其中,第一个构造方法根据一个路径名字符串创建一个File对象;第二个构造方法根据一个父路径名字符串和一个子路径名字符串创建一个File对象;第三个构造方法根据一个父路径名File对象和一个子路径名字符串创建一个File对象。

例如:

    // 创建一个File对象

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

    // 创建一个带有父路径的File对象

    File file2 = new File("C:\\temp", "test.txt");

1.2 文件操作方法

    public boolean exists()

    public boolean createNewFile()

    public boolean delete()

    public boolean renameTo(File dest)

其中,exists()方法用于判断文件或目录是否存在;createNewFile()方法用于创建一个新的空文件;delete()方法用于删除文件或目录;renameTo()方法用于将文件或目录重命名为指定的名称。

例如:

    // 判断文件是否存在

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

    if (file.exists()) {

        System.out.println("文件存在");

    } else {

        System.out.println("文件不存在");

    }

    // 创建一个新文件

    File file2 = new File("test.txt");

    if (file2.createNewFile()) {

        System.out.println("文件创建成功");

    } else {

        System.out.println("文件创建失败");

    }

    // 删除一个文件

    File file3 = new File("test.txt");

    if (file3.delete()) {

        System.out.println("文件删除成功");

    } else {

        System.out.println("文件删除失败");

    }

    // 重命名一个文件

    File file4 = new File("test.txt");

    File file5 = new File("newtest.txt");

    if (file4.renameTo(file5)) {

        System.out.println("文件重命名成功");

    } else {

        System.out.println("文件重命名失败");

    }

1.3 目录操作方法

    public boolean mkdir()

    public boolean mkdirs()

    public String[] list()

    public File[] listFiles()

其中,mkdir()方法用于创建一个目录;mkdirs()方法用于创建一个多层目录;list()方法用于返回目录中包含的文件和目录的名称数组;listFiles()方法用于返回目录中包含的文件和目录的File对象数组。

例如:

    // 创建一个目录

    File dir = new File("C:\\temp\\dir");

    if (dir.mkdir()) {

        System.out.println("目录创建成功");

    } else {

        System.out.println("目录创建失败");

    }

    // 创建多层目录

    File dirs = new File("C:\\temp\\dir\\subdir");

    if (dirs.mkdirs()) {

        System.out.println("目录创建成功");

    } else {

        System.out.println("目录创建失败");

    }

    // 列出目录中所有文件和目录的名称

    File dir2 = new File("C:\\temp");

    String[] files = dir2.list();

    for (String fileName : files) {

        System.out.println(fileName);

    }

    // 列出目录中所有文件和目录的File对象

    File dir3 = new File("C:\\temp");

    File[] files2 = dir3.listFiles();

    for (File file : files2) {

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

    }

2. FileWriter类

FileWriter类是Java中用于将字符写入文件的类。它可以创建一个文件并写入内容,或者向已存在的文件添加内容。下面是FileWriter类的常用方法:

2.1 构造方法

    public FileWriter(String fileName)

    public FileWriter(String fileName, boolean append)

其中,第一个构造方法用于创建一个新的空文件,默认情况下会覆盖已存在的同名文件;第二个构造方法用于以追加模式打开文件,将新写入的内容添加到文件末尾。

例如:

    // 创建一个新的空文件,并写入内容

    FileWriter writer = new FileWriter("test.txt");

    writer.write("Hello World!

");

    writer.close();

    // 向已存在的文件中添加内容

    FileWriter writer2 = new FileWriter("test.txt", true);

    writer2.write("Java is awesome!

");

    writer2.close();

2.2 写入内容

    public void write(String str)

    public void write(char[] cbuf, int off, int len)

其中,write(String str)方法用于将一个字符串写入文件;write(char[] cbuf, int off, int len)方法用于将字符数组写入文件,其中off表示写入字符数组起始位置,len表示写入长度。

例如:

    // 将字符串写入文件

    FileWriter writer3 = new FileWriter("test.txt", true);

    writer3.write("Java is awesome!

");

    writer3.close();

    // 将字符数组写入文件

    char[] buffer = new char[1024];

    buffer[0] = 'H';

    buffer[1] = 'e';

    buffer[2] = 'l';

    buffer[3] = 'l';

    buffer[4] = 'o';

    buffer[5] = '

';

    FileWriter writer4 = new FileWriter("test.txt", true);

    writer4.write(buffer, 0, 6);

    writer4.close();

3. FileReader类

FileReader类是Java中读取文件内容的类。它可以读取一个文件的内容,并将内容存入字符数组中。下面是FileReader类的常用方法:

3.1 构造方法

    public FileReader(String fileName)

其中,构造方法根据指定的文件名创建一个FileReader对象。

例如:

    // 读取一个文件的内容

    FileReader reader = new FileReader("test.txt");

    char[] buffer = new char[1024];

    reader.read(buffer);

    reader.close();

    System.out.println(buffer);

3.2 读取内容

    public int read(char[] cbuf)

其中,read(char[] cbuf)方法可以读取文件的内容,并将内容存入字符数组中。

例如:

    FileReader reader2 = new FileReader("test.txt");

    char[] buffer2 = new char[1024];

    int length = reader2.read(buffer2);

    reader2.close();

    System.out.println(new String(buffer2, 0, length));

以上就是使用Java中的File和FileWriter函数来读写文件的步骤和代码示例。需要注意的是,在使用FileWriter和FileReader时,需要在使用完毕后关闭流,以释放相关资源。