c++ 文件分块
时间:2022-04-27
本文章向大家介绍c++ 文件分块,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
对大文件进行分块处理,这里只是简单的顺序执行
可考虑实现并发分块,通过文件指针的位置及偏移来实现
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#define KB_4 4096
#define KB_8 8192
#define KB_16 16384
#define KB_32 32768
#define KB_64 65536L
#define KB_128 131072L
#define KB_256 262144L
#define KB_512 524288L
#define MB_1 1048576L
#define MB_2 2097152L
#define MB_4 4194304L
using namespace std;
string int_to_str(int i)
{
stringstream ss;
ss << i ;
return ss.str();
}
bool write_file(char * block, int length, const string & filename)
{
ofstream ofs(filename.c_str());
if(!ofs.is_open())
{
cout << "Failed to open the file!" << endl;
return false;
}
ofs.write(block, length);
ofs.close();
return true;
}
void test()
{
const int size = MB_2;
ifstream ifs("1GB");
if(!ifs.is_open())
{
cout << "Failed to open the file!" << endl;
return ;
}
string block_id = "";
string head = "2MB/";
char block[size];
int i = 1;
do
{
block_id = head + int_to_str(i++);
if(ifs.read(block, size) == 0)
break;
if(!write_file(block, size, block_id))
{
cout << "error!" << endl;
break;
}
}while(!ifs.eof());
ifs.close();
cout << "over!" << endl;
}
- 在java中使用redis
- springmvc学习笔记--json--返回json的日期格式问题
- springmvc学习笔记--mybatis--使用插件自动生成实体和mapper
- velocity的一些用法
- String.split()用法以及特殊分隔符注意,ps:|
- Mybatis在idea中错误:Invalid bound statement (not found)
- java字符编码和oracle乱码
- ehcache报错
- java继承覆盖与向上转型,权限
- java变量的加载顺序
- java类的初始化和对象的创建顺序
- 附近的人位置距离计算方法
- java中复制对象通过反射或序列化
- Java String.split()用法小结
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Spring 中基于 AOP 的 XML操作方式
- python基础 -- 内建函数
- virtualenv 安装及使用
- Git 分布式版本控制 -- (1、基本使用)
- python爬虫----(scrapy框架提高(1),自定义Request爬取)
- python基础 -- 异常处理try的使用及一些思考
- 记一次关于MySQL与PHP的蠢事
- 编写一个简单的JQuery插件
- Spring AOP异常:Error creating bean with name ‘org.springframework.aop.aspectj.
- Tomcat7 Redis Session 共享
- CodeIgniter (CI) 框架学习 -- load_class
- Laravel框架学习 -- php artisan down/up
- Spring中基于注解@AspectJ的AOP实现
- python提高--running-python-code-contained-in-a-strin
- linux shell 监控脚本 及 邮件发送