我有一个函数,其中我只得到一个 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),此代码会导致程序运行速度极慢或截断数据,具体取决于执行程序的计算机。有人对在这种情况下如何处理大文件有建议吗?