编写程序,使用字节缓冲流将src.txt文件中的数据读取并写入到des.txt文件中。使用BufferedInputStream和BufferdOutputStream的构造方法分别接收InputStream和OutputStream类型的参数作为被包装对象,在读写数据时提供缓冲功能
时间: 2023-10-25 21:23:11 浏览: 106
使用字节流方式操作文件,读取和写入文件
3星 · 编辑精心推荐
以下是一个使用字节缓冲流将 src.txt 文件中的数据读取并写入到 des.txt 文件中的 C 语言程序示例:
```c
#include <stdio.h>
#define BUFFER_SIZE 1024
int main() {
FILE *src_file, *des_file;
unsigned char buffer[BUFFER_SIZE];
int read_size, write_size;
// 打开源文件
src_file = fopen("src.txt", "rb");
if (src_file == NULL) {
perror("打开源文件失败");
return 1;
}
// 打开目标文件
des_file = fopen("des.txt", "wb");
if (des_file == NULL) {
perror("打开目标文件失败");
return 1;
}
// 创建缓冲流
setvbuf(src_file, NULL, _IOFBF, BUFFER_SIZE);
setvbuf(des_file, NULL, _IOFBF, BUFFER_SIZE);
// 循环读取和写入数据
while ((read_size = fread(buffer, 1, BUFFER_SIZE, src_file)) > 0) {
write_size = fwrite(buffer, 1, read_size, des_file);
if (write_size != read_size) {
perror("写入目标文件失败");
return 1;
}
}
// 关闭文件
fclose(src_file);
fclose(des_file);
return 0;
}
```
该程序使用了缓冲流,从源文件中读取数据并写入到目标文件中。在创建缓冲流时,使用了 setvbuf() 函数将源文件和目标文件分别设置成了带有缓冲的流。在循环中,使用 fread() 函数从源文件中读取数据,使用 fwrite() 函数将数据写入到目标文件中。当写入数据的大小不等于读取数据的大小时,程序会输出错误信息并退出。最后,程序关闭了源文件和目标文件。
阅读全文