ちょっと、私はCSVファイルを読み込むこのプログラムに取り組んでいます。値の列全体を返すメソッドを作る必要があります。Java:リーダープログラムの速度を改善する
現在、私はこのようにそれを行う:
List<String> data = new LinkedList<>();
for(int i = 0; i < getRowCount(); i++){
data.add(getRow(i).get(column));
}
のgetRow()このある場合は:
List<String> data = new LinkedList<>();
String column;
try (BufferedReader bufferedReader = new BufferedReader(new FileReader(file))) {
for(int i = 0; i < row; i++){
bufferedReader.readLine();
}
column = bufferedReader.readLine();
for(String col: column.split(columnSeparator.toString())){
data.add(col);
}
} catch (IOException e) {
e.printStackTrace();
}
、それが動作します。しかし、欠点は、ファイルに列が多すぎると時間がかかりすぎるということです。それは27 secondso n n 7500行と9列が必要です。 35000行と16列で10分以上。私はそれをもっと速くする方法を知っていますか?
あなたは、各繰り返しの* i *番目の行までファイル全体を処理していることを認識していますか?また、 '列'は何ですか? – shmosel
毎回バッファードリーダーをリメイクしないでください。 – Rogue
@shmoselそれは結局私に感謝しました:D列はgetColumnメソッドの引数です。基本的に私が得たい列の数。 – Erik