fileinputstream拷贝文件的时候设置编码
时间: 2024-03-20 11:40:24 浏览: 120
在使用 FileInputStream 进行文件拷贝的时候,因为是字节流,所以本身并没有编码的概念。如果你需要指定编码来读取文件,可以考虑使用 InputStreamReader 将字节流转化为字符流,再进行读取。
例如,如果你需要将一个 UTF-8 编码的文件拷贝到另一个文件中,可以这样做:
```java
try (FileInputStream inputStream = new FileInputStream("source.txt");
InputStreamReader reader = new InputStreamReader(inputStream, "UTF-8");
FileOutputStream outputStream = new FileOutputStream("target.txt")) {
int len;
char[] buffer = new char[1024];
while ((len = reader.read(buffer)) != -1) {
outputStream.write(new String(buffer, 0, len).getBytes("UTF-8"));
}
} catch (IOException e) {
e.printStackTrace();
}
```
这个例子中,我们使用了 InputStreamReader 将 FileInputStream 转化为字符流,然后读取文件内容。在写入到目标文件中的时候,我们将字符转化为字节再写入,同时指定了编码为 UTF-8。这样就能够确保文件内容的编码正确。
阅读全文