在真实的应用场景中,很多时候需要使用 Java 读写文件。比如说,读取配置文件信息、读取用户输入等。本篇文章将会详细介绍 Java 文件读写的相关知识,其中包括:读取文件、写入文件、复制文件和删除文件等操作。

读取文件

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

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

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

  1. 创建一个 FileInputStream 对象,并指定要读取的文件路径。


java

复制代码

FileInputStream fis = new FileInputStream("path/to/file"); 
  1. 使用 read() 方法读取文件中的数据。


java

复制代码

int data = fis.read(); 

代码示例:



java

复制代码

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() 方法来关闭文件输入流。

  1. 使用 FileReader 类读取文件

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

  1. 创建一个 FileReader 对象,并指定要读取的文件路径。


java

复制代码

FileReader fr = new FileReader("path/to/file"); 
  1. 使用 read() 方法读取文件中的数据。


java

复制代码

int data = fr.read(); 

代码示例:



java

复制代码

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 类:用于写入字符文件,如文本文件等。
  1. 使用 FileOutputStream 类写入文件

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

  1. 创建一个 FileOutputStream 对象,并指定要写入的文件路径。


java

复制代码

FileOutputStream fos = new FileOutputStream("path/to/file"); 
  1. 使用 write() 方法将数据写入到文件中。


java

复制代码

fos.write(data); 

代码示例:



java

复制代码

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() 方法来关闭文件输出流。

  1. 使用 FileWriter 类写入文件

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

  1. 创建一个 FileWriter 对象,并指定要写入的文件路径。


java

复制代码

FileWriter fw = new FileWriter("path/to/file"); 
  1. 使用 write() 方法将数据写入到文件中。


java

复制代码

fw.write(data); 

代码示例:



java

复制代码

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 来实现文件复制操作。具体步骤如下:

  1. 创建一个 FileInputStream 对象,并指定要复制的源文件路径。


java

复制代码

FileInputStream fis = new FileInputStream("path/to/source/file"); 
  1. 创建一个 FileOutputStream 对象,并指定要写入目标文件的路径。


java

复制代码

FileOutputStream fos = new FileOutputStream("path/to/target/file"); 
  1. 建立缓冲区,从输入流中读取数据并写入到输出流中。


java

复制代码

byte[] buffer = new byte[1024]; int length; while ((length = fis.read(buffer)) > 0) { fos.write(buffer, 0, length); } 
  1. 关闭 FileInputStream 和 FileOutputStream 流。


java

复制代码

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

代码示例:



java

复制代码

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() 方法来删除文件。具体步骤如下:

  1. 创建一个 File 对象,并指定要删除的文件路径。


java

复制代码

File file = new File("path/to/file"); 
  1. 调用 delete() 方法来删除文件。


java

复制代码

file.delete(); 

代码示例:



java

复制代码

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() 方法来关闭流资源,以释放内存。