在这个例子中
files reader
解决方案的重点是读取任何文件或任何文件并将其加载到内存中。
我一直在努力改进它,以便它处理一个csv文件,并在每个线程中保留头,这样每个线程都可以输出一个单独的、格式正确的csv文件。
不幸的是,我不能这样做,因为它从随机位置(行)读取,这意味着它可能从行的中间读取,我会把行弄混。
有没有办法利用这个代码,使csv是特定的?
这是我更改的代码:
public static void main(String[] args) throws IOException {
long start = System.currentTimeMillis();
CSVReader reader = new CSVReader(new FileReader("file.csv"));
String[] columnsNames = reader.readNext();
reader.close();
FileInputStream fileInputStream = new FileInputStream("file.csv");
FileChannel channel = fileInputStream.getChannel();
long remaining_size = channel.size(); //get the total number of bytes in the file
long chunk_size = remaining_size / Integer.parseInt("4"); //file_size/threads
//Max allocation size allowed is ~2GB
if (chunk_size >