原文地址:http://www.blogjava.net/landon/archive/2010/12/20/341197.html
把一个大文件切割成多个小文件
package chow.nio;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class ReadLargeTextNio {
/**
*
* 用NIO读取大文本(1G以上)
*
*/
public static void main(String... args) throws IOException {
FileInputStream fin = new FileInputStream("C:/xmlDir2/20m.xml");
FileChannel fcin = fin.getChannel();
ByteBuffer buffer = ByteBuffer.allocate(1024 * 1024 * 1); //1M
int count = 1;
while (true) {
buffer.clear();
int flag = fcin.read(buffer);
if (flag == -1) {
break;
}
buffer.flip();
FileOutputStream fout = new FileOutputStream("c:\\xmlDir2\\" + count
+ ".xml");
FileChannel fcout = fout.getChannel();
fcout.write(buffer);
System.out.println("create file " + count);
count++;
}
}
}