一个2G的文本文件,如何实现所有内容的完全颠倒?
一个2G的文本文件,如何实现所有内容的完全颠倒?
一个2G的文本文件,要求不使用中间临时文件,如何实现所有内容的完全颠倒?(行也颠倒过来,每行字符都颠倒过来)
比如文件内容如下:
abcde
12345
你们好
实现内容完全颠倒后:
好们你
54321
edcba
不使用中间文件,就是说只能在内存中读写该文件,但是文件有2G,超过一般内存。如何实现之?请使用Java或C++或其他都可。谢谢!
[解决办法]
你可以跑到文件指定位置,再读入buffer大小的文件,然后写文件,用append方式。然后循环...
[解决办法]
2G.....再unix系统空闲的时候用shell硬导
[解决办法]
你可以看《windows高级编程指南》,里面内存映射文件那章,讲得十分清楚了。
[解决办法]
CSDN好讨厌!半夜不能回贴。
很简单的方法.
以下描述假定文件大小刚好是 32K的倍数
1. 取出首16K,颠倒字节顺序
2. 取出尾16K,颠倒字节顺序
3. 将颠倒的首16K写到文件尾
3. 将颠倒的尾16K写到文件首
4. 对文件的剩余内容做同样处理直到全部完成。