java FIleWriter write和writeLine
时间: 2025-01-26 20:07:37 浏览: 47
### Java `FileWriter` 的 `write` 和 `println` 方法区别
在 Java 中,`FileWriter` 类继承自 `Writer` 抽象类,专门用于处理字符输出流。对于文件操作而言,`FileWriter` 提供了两种常见的写入方法:`write()` 和 `println()`。
#### `write()`
此方法主要用于向目标文件中写入单个字符、字符数组或字符串的一部分。具体来说:
- 当传递整数参数给该函数时,会将对应的 ASCII 值转换成相应的字符并写出;
- 如果传入的是字符数组,则整个数组会被依次记录下来;
- 若提供了一个带有起始位置和长度范围的字符串片段,那么只有指定区间内的内容才会被保存到磁盘上[^2]。
```java
try (FileWriter writer = new FileWriter("example.txt")) {
char[] chars = "Hello".toCharArray();
String str = "World";
// Write single character 'A'
writer.write('A');
// Write entire array of characters
writer.write(chars);
// Write part of a string starting at index 1 with length 4
writer.write(str, 1, 4);
} catch (IOException e) {
System.out.println(e.getMessage());
}
```
#### `println()`
实际上,在标准库中并没有直接定义于 `FileWriter` 上名为 `println()` 的成员函数;而是通过其子类如 `BufferedWriter` 或者组合模式下的封装实现来完成换行功能。因此,当提到 `println()` 时,实际上是讨论如何利用这些扩展后的特性来进行带自动换行符的操作。
为了达到类似效果,可以在每次调用普通的 `write()` 后手动追加一个新行(`\n`),或者更方便的方式就是使用像 `PrintWriter` 这样的高级别 API 来简化编码过程。
```java
// Using BufferedWriter for println functionality
try (BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"))) {
bw.write("First line");
bw.newLine(); // Equivalent to println()
bw.write("Second line");
} catch (IOException e) {
System.out.println(e.getMessage());
}
// Alternatively using PrintWriter which has built-in println method
try (PrintWriter pw = new PrintWriter(new FileWriter("printwriter_example.txt"))) {
pw.println("This is the first line.");
pw.println("And this is another one!");
} catch (IOException e) {
System.out.println(e.getMessage());
}
```
阅读全文
相关推荐






