カンマ区切りのテキストファイルを読み取り、データに対していくつかの計算を実行し、更新されたデータを新しいファイルに書き込むJavaアプリケーションを作成しています。入力ファイルには約5億行が含まれているため、実行時にメモリ不足の例外が発生しないように、可能な限り以下をスケーリングしようとしています。以下を改善する方法について何かアイデアはありますか?
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CsvTest {
public void readFile() {
BufferedReader br = null;
BufferedWriter out = null;
try {
br = new BufferedReader(new FileReader("C:\\input.txt"));
FileWriter fstream = new FileWriter("C:\\output.txt");
out = new BufferedWriter(fstream);
String line = null;
while ((line = br.readLine()) != null) {
out.write(line + "\r\n");
}
}
catch (FileNotFoundException ex) {
System.err.println("Error: " + ex.getMessage());
}
catch (IOException ex) {
System.err.println("Error: " + ex.getMessage());
}
finally {
try {
if (br != null) {
br.close();
}
if(out != null){
out.close();
}
}
catch (IOException ex) {
System.err.println("Error: " + ex.getMessage());
}
}
}
public static void main(String[] args) {
CsvTest test = new CsvTest();
test.readFile();
}
}