Java文件读写详解

 更新时间:2023年05月12日 09:05:04   作者:蜀山剑客李沐白  
在真实的应用场景中,很多时候需要使用 Java 读写文件。比如说,读取配置文件信息、读取用户输入等。本篇文章将会详细介绍 Java 文件读写的相关知识,其中包括:读取文件、写入文件、复制文件和删除文件等操作,需要的朋友可以参考下

读取文件

Java 中可以使用 FileInputStream 和 FileReader 两个类来读取文件:

  • FileInputStream 类:用于读取二进制文件,如图片、视频、音频等文件。
  • FileReader 类:用于读取字符文件,如文本文件等。
  • 使用 FileInputStream 类读取文件

使用 FileInputStream 类读取文件需要进行以下步骤:

  • 创建一个 FileInputStream 对象,并指定要读取的文件路径。
FileInputStream fis = new FileInputStream("path/to/file");
  • 使用 read() 方法读取文件中的数据。
int data = fis.read();

代码示例:

import java.io.FileInputStream;
import java.io.IOException;

public class FileInputStreamDemo {

    public static void main(String[] args) {
        try {
            FileInputStream fis = new FileInputStream("src/main/resources/demo.txt");

            int data;
            while ((data = fis.read()) != -1) {
                System.out.print((char) data);
            }

            fis.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

上面的代码使用 FileInputStream 读取了当前项目中 resources 目录下的 demo.txt 文件,并将其中的内容输出到控制台上。

需要注意的是,在使用 FileInputStream 读取文件时,可能会抛出 IOException 异常,需要进行适当的处理。同时,在使用完该类之后,需要调用它的 close() 方法来关闭文件输入流。

  • 使用 FileReader 类读取文件

使用 FileReader 类读取文件同样需要进行以下步骤:

  • 创建一个 FileReader 对象,并指定要读取的文件路径。
FileReader fr = new FileReader("path/to/file");
  • 使用 read() 方法读取文件中的数据。
int data = fr.read();

代码示例:

import java.io.FileReader;
import java.io.IOException;

public class FileReaderDemo {

    public static void main(String[] args) {
        try {
            FileReader fr = new FileReader("src/main/resources/demo.txt");

            int data;
            while ((data = fr.read()) != -1) {
                System.out.print((char) data);
            }

            fr.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

上面的代码使用 FileReader 读取了当前项目中 resources 目录下的 demo.txt 文件,并将其中的内容输出到控制台上。

需要注意的是,与 FileInputStream 类似,在使用 FileReader 读取文件时也可能会抛出 IOException 异常,需要进行适当的处理。同时,在使用完该类之后,也需要调用它的 close() 方法来关闭文件输入流。

写入文件

在 Java 中,可以使用 FileOutputStream 和 FileWriter 两个类来写入文件:

  • FileOutputStream 类:用于写入二进制文件,如图片、视频、音频等文件。
  • FileWriter 类:用于写入字符文件,如文本文件等。
  • 使用 FileOutputStream 类写入文件

使用 FileOutputStream 类写入文件需要进行以下步骤:

  • 创建一个 FileOutputStream 对象,并指定要写入的文件路径。
FileOutputStream fos = new FileOutputStream("path/to/file");
  • 使用 write() 方法将数据写入到文件中。
fos.write(data);

代码示例:

import java.io.FileOutputStream;
import java.io.IOException;

public class FileOutputStreamDemo {

    public static void main(String[] args) {
        try {
            FileOutputStream fos = new FileOutputStream("src/main/resources/demo.txt");

            String data = "Hello, World!";
            byte[] bytes = data.getBytes();

            fos.write(bytes);

            fos.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

上面的代码使用 FileOutputStream 将字符串 "Hello, World!" 写入到当前项目中 resources 目录下的 demo.txt 文件中。

需要注意的是,在使用 FileOutputStream 写入文件时,可能会抛出 IOException 异常,需要进行适当的处理。同时,在使用完该类之后,需要调用它的 close() 方法来关闭文件输出流。

  • 使用 FileWriter 类写入文件

使用 FileWriter 类写入文件同样需要进行以下步骤:

  • 创建一个 FileWriter 对象,并指定要写入的文件路径。
FileWriter fw = new FileWriter("path/to/file");
  • 使用 write() 方法将数据写入到文件中。
fw.write(data);

代码示例:

import java.io.FileWriter;
import java.io.IOException;

public class FileWriterDemo {

    public static void main(String[] args) {
        try {
            FileWriter fw = new FileWriter("src/main/resources/demo.txt");

            String data = "Hello, World!";
            fw.write(data);

            fw.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

上面的代码使用 FileWriter 将字符串 "Hello, World!" 写入到当前项目中 resources 目录下的 demo.txt 文件中。

需要注意的是,与 FileOutputStream 类似,在使用 FileWriter 写入文件时也可能会抛出 IOException 异常,需要进行适当的处理。同时,在使用完该类之后,也需要调用它的 close() 方法来关闭文件输出流。

复制文件

在 Java 中,可以通过 FileInputStream 和 FileOutputStream 来实现文件复制操作。具体步骤如下:

  • 创建一个 FileInputStream 对象,并指定要复制的源文件路径。
FileInputStream fis = new FileInputStream("path/to/source/file");
  • 创建一个 FileOutputStream 对象,并指定要写入目标文件的路径。
FileOutputStream fos = new FileOutputStream("path/to/target/file");
  • 建立缓冲区,从输入流中读取数据并写入到输出流中。
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) > 0) {
    fos.write(buffer, 0, length);
}
  • 关闭 FileInputStream 和 FileOutputStream 流。
fis.close();
fos.close();

代码示例:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyFileDemo {

    public static void main(String[] args) {
        try {
            FileInputStream fis = new FileInputStream("src/main/resources/demo.txt");
            FileOutputStream fos = new FileOutputStream("src/main/resources/demo_copy.txt");

            byte[] buffer = new byte[1024];
            int length;
            while ((length = fis.read(buffer)) > 0) {
                fos.write(buffer, 0, length);
            }

            fis.close();
            fos.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

上面的代码实现了将当前项目中 resources 目录下的 demo.txt 文件复制到 demo_copy.txt 文件中。

需要注意的是,在使用完相关流之后,需要调用它们的 close() 方法来关闭流资源,以释放内存。

删除文件

在 Java 中,可以使用 File 类的 delete() 方法来删除文件。具体步骤如下:

  • 创建一个 File 对象,并指定要删除的文件路径。
File file = new File("path/to/file");
  • 调用 delete() 方法来删除文件。
file.delete();

代码示例:

import java.io.File;

public class DeleteFileDemo {

    public static void main(String[] args) {
        File file = new File("src/main/resources/demo_copy.txt");

        if (file.delete()) {
            System.out.println(file.getName() + " is deleted!");
        } else {
            System.out.println("Delete operation is failed.");
        }
    }

}

上面的代码删除了当前项目中 resources 目录下的 demo_copy.txt 文件。

需要注意的是,在使用 delete() 方法删除文件时,可能会抛出 SecurityException 异常,需要进行适当的处理。同时,在删除文件之前,需要判断该文件是否存在,可以使用 File 类的 exists() 方法来实现。

总结

本篇文章详细介绍了 Java 文件读写的相关知识,包括读取文件、写入文件、复制文件和删除文件等操作。希望能够对大家的学习和实践有所帮助。需要注意的是,在进行文件读写操作时,要注意异常的处理,以保证代码的健壮性。同时,在使用完相关流之后,也需要调用 close() 方法来关闭流资源,以释放内存。

以上就是Java文件读写详解的详细内容,更多关于Java文件读写的资料请关注脚本之家其它相关文章!

相关文章

  • JAVA SPI特性及简单应用代码实例

    JAVA SPI特性及简单应用代码实例

    这篇文章主要介绍了JAVA SPI特性及简单应用代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • java入门概念个人理解之package与import浅析

    java入门概念个人理解之package与import浅析

    下面小编就为大家带来一篇java入门概念个人理解之package与import浅析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • SpringBoot的@RestControllerAdvice作用详解

    SpringBoot的@RestControllerAdvice作用详解

    这篇文章主要介绍了SpringBoot的@RestControllerAdvice作用详解,@RestContrllerAdvice是一种组合注解,由@ControllerAdvice,@ResponseBody组成,本质上就是@Component,需要的朋友可以参考下
    2024-01-01
  • 使用spring aop统一处理异常和打印日志方式

    使用spring aop统一处理异常和打印日志方式

    这篇文章主要介绍了使用spring aop统一处理异常和打印日志方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Java实现螺旋矩阵的示例

    Java实现螺旋矩阵的示例

    这篇文章主要介绍了Java实现螺旋矩阵的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Spring MVC学习教程之RequestMappingHandlerMapping匹配

    Spring MVC学习教程之RequestMappingHandlerMapping匹配

    这篇文章主要给大家介绍了关于Spring MVC学习教程之RequestMappingHandlerMapping匹配的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-11-11
  • 详解SpringMVC中的日期处理和文件上传操作

    详解SpringMVC中的日期处理和文件上传操作

    这篇文章主要为大家详细介绍了SpringMVC中的日期处理和文件上传操作方法,文中的示例代码讲解详细,对我们学习有一定借鉴价值,需要的可以参考一下
    2022-08-08
  • 整理Java的MyBatis框架中一些重要的功能及基本使用示例

    整理Java的MyBatis框架中一些重要的功能及基本使用示例

    这篇文章主要介绍了Java的MyBatis框架中一些重要的功能及基本使用示例整理,MyBatis可以帮助Java程序进行强大的数据库操作,需要的朋友可以参考下
    2016-04-04
  • 一文详解Lombok中@ToString()的使用技巧

    一文详解Lombok中@ToString()的使用技巧

    在平时我们工作的时候,我们经常会使用toString() 方法来输出一个对象的一些属性信息。Lombok 给我们提供了一个自动生成 toString()代码的注解,可以减少代码行数,本文就来和大家详细聊聊吧
    2023-02-02
  • Spring Data Neo4j实现复杂查询的多种方式

    Spring Data Neo4j实现复杂查询的多种方式

    在 Spring Data Neo4j 中,实现复杂查询可以通过多种方式进行,包括使用自定义查询、方法命名查询以及使用 Cypher 查询语言,以下是详细介绍,帮助你在 Spring Data Neo4j 中实现复杂查询,需要的朋友可以参考下
    2024-11-11

最新评论