JAVA 字符流如和实现不覆盖式存储
时间: 2024-01-30 10:01:54 浏览: 24
Java 字符流的实现可以使用 FileWriter 和 BufferedWriter 两个类,而不覆盖式存储可以使用 FileWriter 的另一个构造方法,这个构造方法可以将文件指针设置到文件末尾,从而实现不覆盖式存储。
示例代码如下:
```java
FileWriter fw = new FileWriter("filename.txt", true); // 设置为追加模式
BufferedWriter bw = new BufferedWriter(fw);
bw.write("Hello, world!"); // 写入数据
bw.close(); // 关闭流
fw.close();
```
在上面的示例代码中,FileWriter 的第二个参数为 true,表示以追加模式打开文件,而不是覆盖模式。这样,写入的数据就会被追加到文件的末尾,而不是覆盖原有内容。同时,通过使用 BufferedWriter 可以提高写入效率。最后,记得要关闭流,否则可能会导致数据写入不完整。
相关问题
Java字符流拷贝文件
Java字符流拷贝文件可以通过使用Java的FileReader和FileWriter类来实现。具体步骤如下:
1. 创建一个FileReader对象,用于读取源文件。
2. 创建一个FileWriter对象,用于写入目标文件。
3. 创建一个char类型的数组,用于缓存读取到的字符。
4. 循环读取源文件,每次读取一定量的字符,将其存储到缓存数组中。
5. 将缓存数组中的字符写入目标文件。
6. 关闭FileReader和FileWriter对象。
下面是一个Java字符流拷贝文件的示例代码:
```
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CopyFile {
public static void main(String[] args) {
FileReader reader = null;
FileWriter writer = null;
char[] buffer = new char[1024];
int length;
try {
reader = new FileReader("source.txt");
writer = new FileWriter("target.txt");
while ((length = reader.read(buffer)) != -1) {
writer.write(buffer, 0, length);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close();
}
if (writer != null) {
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
Javaoi流字节流字符流
Java IO流分为字节流和字符流。字节流操作的是字节和字节数组,而字符流操作的是Unicode字符、字符数组或字符串。Java内部使用Unicode编码来存储字符。字节流适用于处理二进制文件或非文本文件,而字符流适用于处理文本文件。
字节流主要由InputStream和OutputStream类以及它们的子类组成。常用的字节流类有FileInputStream、FileOutputStream、BufferedInputStream和BufferedOutputStream等。
字符流主要由Reader和Writer类以及它们的子类组成。常用的字符流类有FileReader、FileWriter、BufferedReader和BufferedWriter等。
转换流是字符流的一种特殊类型,它可以将字节流转换为字符流。Java中转换流对应的类为OutputStreamWriter和InputStreamReader。转换流可以指定编码字符集,用于处理不同编码格式的文件。