C++实战:文件IO流实现文件复制
文件的IO操作详解文件的IO操作
项目内容
通过文件读写的方式,自己实现一个函数,实现文件的拷贝功能。
完整代码
#include <iostream>
#include <fstream>
using namespace std;
int file_copy()
{
char before_copy_route[20];
char after_copy_route[20];
cout << "\t\t\t\t欢迎使用菜鸟编程——文件复制( ̄▽ ̄)" << endl;
getchar();
cout << "请输入复制前的路径:";
cin >> before_copy_route;
cout << "请输入复制后的路径:";
cin >> after_copy_route;
//将原始文件复制到新文件
//1. 创建输入流读取文件,将数据写入变量,同时判断是否读取到了文件末尾
//2. 将变量中的值写入到新的文件中
ifstream infile; //输入流的创建
infile.open(before_copy_route,ios::binary); //打开原始文件
if (!infile)return 0; //判断原始文件是否打开成功
infile.seekg(0, ios::end); //计算文件字节数
int file_len = (int)infile.tellg();
char* buff = new char[file_len]; //根据文件大小建立一个内存缓存空间并赋值给指针buff
infile.seekg(0); //将文件指针设置为从头开始
infile.read(buff, file_len); //根据文件大小以二进制方式读取文件到缓存
ofstream outfile;
outfile.open(after_copy_route, ios::binary); // 二进制方式打开写入文件
if (!outfile)return 0;
outfile.write(buff, file_len); // 将缓存中的内容写入文件
infile.close();
outfile.close();
delete []buff; //关闭文件流,并释放内存空间
return 1;
}
int main()
{
if (file_copy())
cout << "复制成功";
else
cout << "复制失败";
getchar();
getchar();
return 0;
}