【发布时间】:2014-10-22 18:19:29
【问题描述】:
我应该编写一个读取 DNA 序列的方法,以便在其上测试一些字符串匹配算法。
我拿了一些我用来阅读文本文件的现有代码(不知道其他代码):
try {
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
while((line = br.readLine()) != null) {
seq += line;
}
br.close();
}
catch(FileNotFoundException e) { e.printStackTrace(); }
catch(IOException e) { e.printStackTrace(); }
这似乎适用于大约 3000 个字符的小文本文件,但读取包含超过 4500 万个字符的文件需要很长时间(我只是在 10 分钟后取消它)。
有没有更有效的方法?
【问题讨论】:
-
我不确定,但
FileInputStream可能会更好。 -
使用StringBuilder而不是String,你需要把它保存在内存中——你不能一读就处理它?如果它是一个大文件,你可以只为文件内容浪费整个内存
-
seq += line;似乎不对。您应该为其创建StringBuilder和append新行。 -
@SamTebbs33 阅读器用于处理文本源,流用于处理二进制源。
FileReader在这里似乎是正确的课程。