Java IO 实践:文件读写详解

0 下载量 63 浏览量 更新于2024-09-03 收藏 47KB PDF 举报
"Java IO 之文件读写简单实例" 在Java编程中,I/O(Input/Output)操作是处理数据输入和输出的关键部分。本文主要介绍如何使用Java IO API进行文件的读写操作,这对于任何Java开发者来说都是基础且重要的技能。 首先,我们来看文件的读取操作。在Java中,有两种主要的方式来读取文件:以字节为单位和以字符为单位。 1. **以字节为单位读取文件**: 这种方式适用于读取任何类型的文件,包括二进制文件(如图片、音频、视频等)。`FileInputStream`类是用于字节流读取的基本类。在示例代码中,首先创建一个`FileInputStream`对象,然后通过`read()`方法逐个或一次性读取多个字节。`read()`方法返回的是一个整数,表示读取到的字节的ASCII值,当文件结束时返回-1。 ```java in = new FileInputStream(file); while ((tempByte = in.read()) != -1) { System.out.write(tempByte); } ``` 上述代码会读取文件的每个字节并将其输出到控制台。另一种方法是一次读取多个字节到字节数组中,这通常能提高效率。 2. **以字符为单位读取文件**: 对于文本文件,我们通常使用字符流来读取,因为这能更好地处理字符编码问题。`FileReader`类用于字符流的读取。在提供的代码片段中,有以下方法用于以字符为单位读取文件: ```java Reader reader = new FileReader(fileName); int charRead; while ((charRead = reader.read()) != -1) { System.out.print((char)charRead); } ``` 这段代码将逐个读取文件中的字符,并将其打印出来。 接着,我们来看文件的写入操作。Java提供了`FileOutputStream`和`FileWriter`类分别用于字节流和字符流的写入。基本流程是创建相应的流对象,然后使用`write()`方法将数据写入文件。 1. **文件写入**: - **以字节为单位写入**: ```java FileOutputStream fos = new FileOutputStream(fileName); fos.write(bytes); // bytes 是要写入的字节数组 fos.close(); ``` - **以字符为单位写入**: ```java FileWriter writer = new FileWriter(fileName); writer.write("Hello, World!"); // 写入字符串 writer.close(); ``` 文件读写过程中,异常处理是非常重要的一环。在上述代码中,都使用了`try-catch-finally`块来捕获和处理可能的`IOException`,确保在完成操作后关闭流。 Java IO API还包括许多其他类和方法,如缓冲流(BufferedReader, BufferedWriter),转换流(InputStreamReader, OutputStreamWriter),以及更高级的NIO(New IO)和NIO2,它们提供了更高效和功能更丰富的文件操作方式。理解并熟练掌握这些基本的文件读写操作对于进行更复杂的I/O操作至关重要。