Javaのテキストファイルをメモリにロードしています。テキスト ファイルのサイズは 100 MB で、文字列、整数、または倍精度型の数千行が含まれています。
64ビットJDKを使用してコンパイルすると、メモリにロードされると1GB以上を占有します。
さらに大きなファイルをロードする必要があるため、これは問題です。
それらは、配列リストに正確なデータ型として格納されます。私はMemoryMappedFilesを見ましたが、必要な機能を提供するかどうかはわかりません.テキストファイルは、JTableに表示する必要がある40列でタブ区切りされています. JTable に表示する必要がありますが、間違っている可能性があります。
任意の提案をいただければ幸いです。
データは次のように保存されます。すべてをメモリに格納する必要があるのは、計算のためにいつでもファイル内の行にアクセスする必要があるためです。
これは JTable のテーブル モデルにあります。メモリ内に重複コピーがないことを確認するために、テーブルモデルに渡された行データが null になっていることに注意してください。
private Object[][] data;
public TableModel(ArrayList<String> headers, RowData[] importedData)
{
columnNames = new String[headers.size()];
data = new Object[importedData.length][headers.size()];
for (int i = 0; i < headers.size(); i++) // extract the column names
{ // for the table
this.columnNames[i] = headers.get(i);
}
for (int i = 0; i < importedData.length; i++) // extracting the data
{ // for the table
for (int j = 0; j < headers.size(); j++)
{
this.data[i][j] = importedData[i].myList.get(j);
}
}
}