zoukankan      html  css  js  c++  java
  • c++ 通过数据流方式实现文件拷贝

    #include "stdafx.h"
    #include <iostream>
    #include<fstream>
    using namespace std;
    void copy(char* src, char* dst);

    int _tmain(int argc, _TCHAR* argv[])
    {

        // 源文件地址及文件名
        char src[50] = "D:/cAddProgram/source_file/file.txt";

       // 拷贝的目的及文件名称
        char dst[50] = "D:\cAddProgram\source_file\file1.txt";

        copy(src, dst);

        return 0;
    }

    // 文件拷贝实现方法
    void copy(char* src, char* dst)
    {
        using namespace std;
        ifstream in(src,ios::binary);
        ofstream out(dst,ios::binary);
        if (!in.is_open()) {
            cout << "error open file " << src << endl;
            exit(EXIT_FAILURE);
        }
        if (!out.is_open()) {
            cout << "error open file " << dst << endl;
            exit(EXIT_FAILURE);
        }
        if (src == dst) {
            cout << "the src file can't be same with dst file" << endl;
            exit(EXIT_FAILURE);
        }
        char buf[2048];
        long long totalBytes = 0;
        while(in)
        {
            //read从in流中读取2048字节,放入buf数组中,同时文件指针向后移动2048字节
            //若不足2048字节遇到文件结尾,则以实际提取字节读取。
            in.read(buf, 2048);    
            //gcount()用来提取读取的字节数,write将buf中的内容写入out流。
            out.write(buf, in.gcount());    
            totalBytes += in.gcount();
        }
        in.close();
        out.close();
    }


  • 相关阅读:
    NYIST 46 最少乘法次数
    OpenSSL命令---rsa
    Javah生成JNI头文件
    Stbdroid之ShapeDrawable
    Android之判断设备网络连接状态,并判断连接方式
    [置顶] 程序员必知(二):位图(bitmap)
    中断子系统8_软中断入口处理
    二叉搜索树的后续遍历序列
    整理生命
    sicily9162. RAZLIKA
  • 原文地址:https://www.cnblogs.com/northeastTycoon/p/9294323.html
Copyright © 2011-2022 走看看