C++中可以采用stream读取文本文件,基本方式是一次一行,编程简洁易行,比用C方便多了。但是,凡事有利有弊,当文件行数较多时,文件读取IO次数就会随之增加,文件读取的时间会急剧增长。因为文件IO的时间要远大于CPU在内存中处理数据的时间,假如IO时间是毫秒级的,那么CPU在内存处理数据是纳秒级的。
很显然,C++中文本文件读取优化要解决的基本问题之一就是减少IO次数,最常用的方法之一是缓冲,也就是一次性将数据会部读入内存之后再处理。例如:
1. C++文本文件读写程序(基本方式)
2. 使用缓冲的读写程序
后者比前者的读写速度要快很多倍。主要原因就是后者的文件IO次数远远少于前者。
3. Java中的缓冲应用
其实缓冲在各种语言中都广泛用到,目的不外乎加快数据读写速度,下面是Java中的文本文件读写程序:
4. 备注
上文中的示例不考虑文本读取后对文本行的处理,其实只是一个简单的复制程序。如果仅仅复制文本文件的话,也可以这样:
还可以这样:
参考文献:http://topic.csdn.net/u/20110616/11/7028e734-6e84-4704-8de7-61f14b884781.html