Wal*_*ite 1 java memory string
我本来应该写一个读取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(); }
Run Code Online (Sandbox Code Playgroud)
对于包含大约3000个字符的小文本文件,这似乎工作得很好,但它需要永远(我只是在10分钟后取消它)来读取包含超过4500万个字符的文件.
有更有效的方法吗?
小智 6
我注意到的一件事是你在做seq + = line.seq可能是一个字符串?如果是这样,那么你必须记住字符串是不可变的.所以实际上你每次尝试在它上面添加一行时都会创建一个新的String.请改用StringBuilder.此外,如果可能,您不希望创建字符串然后进行处理.那样你必须做两次.理想情况下,您希望在阅读时进行处理,但我不了解您的情况.
| 归档时间: |
|
| 查看次数: |
1376 次 |
| 最近记录: |