Java IO流进阶:FileWriter详解与示例

0 下载量 45 浏览量 更新于2024-09-01 收藏 61KB PDF 举报
"这篇文档是关于Java中的IO流,特别是关注字符输出流的使用,特别是FileWriter类。它详细介绍了FileWriter的构造方法和常用方法,以及如何通过这个类进行文件操作。" 在Java中,IO流(Input/Output Stream)是用来处理输入和输出操作的重要工具,它允许程序与各种数据源(如文件、网络连接等)进行数据交换。本文档主要探讨的是文件操作中的字符输出流,具体是`FileWriter`类。 `FileWriter`是Java标准库`java.io`包中的一个类,用于处理字符流的输出操作,即向文件写入文本数据。它提供了多种构造方法,方便根据不同的需求创建实例: 1. `FileWriter(File file)`:根据传入的`File`对象创建一个`FileWriter`实例,用于指定文件的写入操作。如果文件不存在,此构造方法会尝试创建新文件。 2. `FileWriter(String pathName)`:根据传入的文件路径字符串创建`FileWriter`实例。与上一个构造方法相同,如果文件不存在且路径合法,会创建新文件。 3. `FileWriter(File file, boolean append)`:除了创建`FileWriter`实例外,还可以设置是否追加模式写入。如果`append`参数为`true`,则在已有文件后追加内容,否则覆盖原有内容。 4. `FileWriter(String pathName, boolean append)`:与上一个构造方法类似,只是传入的是文件路径字符串。 `FileWriter`类提供了以下核心方法来写入数据到文件: 1. `void write(int ch)`:写入单个字符。参数`ch`是待写入的字符。 2. `void write(char[] arr)`:写入整个字符数组。数组中的所有字符都将被写入文件。 3. `void write(char[] arr, int offset, int length)`:写入字符数组的一部分。从`offset`指定的位置开始,写入`length`个字符。 4. `void write(String str)`:写入整个字符串。 5. `void write(String str, int offset, int length)`:写入字符串的一部分。从`offset`指定的位置开始,写入`length`个字符。 在使用`FileWriter`时,需要注意可能出现的异常,例如`FileNotFoundException`当文件路径不正确或文件无法打开时抛出,以及`IOException`在写入过程中发生任何I/O错误时抛出。因此,通常需要使用`try-catch`语句块来捕获这些异常。 示例代码展示了如何使用`FileWriter`向文件追加内容: ```java import java.io.File; import java.io.FileWriter; import java.io.IOException; public class Demo1 { public static void main(String[] args) { FileWriter fileWriter = null; try { fileWriter = new FileWriter(new File("D:/aaa/5.txt"), true); char[] charArray = "现在美国全国缺少口罩2.7亿".toCharArray(); fileWriter.write(charArray); } catch (IOException e) { e.printStackTrace(); } finally { if (fileWriter != null) { try { fileWriter.close(); } catch (IOException e) { e.printStackTrace(); } } } } } ``` 这段代码创建了一个`FileWriter`实例,用于向"D:/aaa/5.txt"文件追加字符数组的内容。在完成写入后,记得关闭`FileWriter`以释放系统资源,防止数据丢失或产生其他问题。如果在执行过程中遇到异常,应妥善处理,避免程序异常中断。