BufferedInputStream のみが与えられ、読み取られるファイルに関する他の情報が与えられない関数があります。残念ながら、アクセスできないコードによってメソッド定義が呼び出されるため、メソッド定義を変更することはできません。以下のコードを使用してファイルを読み取り、その内容を文字列に配置しました。
public String[] doImport(BufferedInputStream stream) throws IOException, PersistenceException {
int bytesAvail = stream.available();
byte[] bytesRead = new byte[bytesAvail];
stream.read(bytesRead);
stream.close();
String fileContents = new String(bytesRead);
//more code here working with fileContents
}
私の問題は、大きなファイル (> 2Gb) の場合、このコードにより、プログラムが実行されているコンピューターに応じて、プログラムの実行が非常に遅くなるか、データが切り捨てられることです。この状況で大きなファイルを処理する方法に関する推奨事項はありますか?