一个2G的文本文件,怎么实现所有内容的完全颠倒

一个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. 对文件的剩余内容做同样处理直到全部完成。