在Android Java中,如果你想要使用`BufferedWriter`在原有数据的基础上追加数据,你需要确保在打开文件时使用`FileWriter`的构造函数,并传入一个布尔值参数`true`,表示以追加模式打开文件。以下是实现这一功能的步骤:
1. **创建`BufferedWriter`实例**:
使用`FileWriter`的构造函数,并传入追加模式的标志。
2. **读取现有数据**(如果需要):
在追加之前,你可以先读取文件中的现有数据。
3. **写入新数据**:
使用`BufferedWriter`的`write`方法追加新数据。
4. **关闭资源**:
完成写入后,关闭`BufferedWriter`以释放系统资源。
以下是具体的代码示例:
```java
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.FileReader;
import java.io.IOException;
public class AppendToFile {
public static void appendTextToFile(String filePath, String newText) {
// 追加模式打开文件
try (FileWriter fileWriter = new FileWriter(filePath, true);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter)) {
// 读取现有数据(可选)
String existingText = readFile(filePath);
System.out.println("Existing text: " + existingText);
// 追加新数据
bufferedWriter.write(newText);
} catch (IOException e) {
e.printStackTrace();
}
}
private static String readFile(String filePath) {
StringBuilder stringBuilder = new StringBuilder();
try (BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = bufferedReader.readLine()) != null) {
stringBuilder.append(line).append("\n");
}
} catch (IOException e) {
e.printStackTrace();
}
return stringBuilder.toString();
}
}
```
在这个示例中:
- `appendTextToFile`方法接受文件路径和要追加的文本作为参数。
- 使用`FileWriter`的第二个构造函数`FileWriter(String filePath, boolean append)`以追加模式打开文件。
- 如果需要,可以调用`readFile`方法来读取现有文件内容,这里使用了`BufferedReader`。
- 使用`BufferedWriter`的`write`方法写入新文本。
- 使用try-with-resources语句确保`BufferedWriter`和`FileWriter`在使用后都被正确关闭。
请注意,如果文件不存在,`FileWriter`将以追加模式创建它。如果文件已经存在,新写入的内容将被追加到文件末尾。