我在一次面试中被问到了这个基础问题,但我无法回答:
如果我们正在运行一个多线程应用程序,输入是一个大文件,我们必须将其分割成多个部分以便每个线程都可以处理它,那么我们该如何在Java中实现呢?
有没有人能解释一下我们该如何做?任何示例也将不胜感激。
我在一次面试中被问到了这个基础问题,但我无法回答:
如果我们正在运行一个多线程应用程序,输入是一个大文件,我们必须将其分割成多个部分以便每个线程都可以处理它,那么我们该如何在Java中实现呢?
有没有人能解释一下我们该如何做?任何示例也将不胜感激。
File f = new File("xxx");
long size = f.length();
long p1 = 0;
long p2 = f.length() / 3;
long p3 = p2 + f.length() / 3;
FileInputStream is = new FileInputStream("xxx");
FileChannel c= is.getChannel();
c.position(position);
// read ...
http://stackoverflow.com/questions/17927398/how-to-split-a-large-text-file-into-smaller-chunks-using-java-multithread
? - Rookie007