我是java的新手,我正在阅读一个~25 MB的文件,并且需要永远加载......有没有其他选择让这更快?是扫描仪无法处理大文件吗?
String text = "";
Scanner sc = new Scanner(new File("text.txt"));
while(sc.hasNext()) {
text += sc.next();
}
Run Code Online (Sandbox Code Playgroud)
您在每次迭代时都连接到文本,并且字符串在Java中是不可变的.这意味着String每次text"修改" 时它都会在内存中创建一个新对象,从而导致大文件的加载时间过长.当你不断改变a时,你应该总是尝试使用StringBuildera String.
你可以这样做:
StringBuilder text = new StringBuilder();
Scanner sc = new Scanner(new File("text.txt");
while(sc.hasNext()) {
text.append(sc.next());
}
Run Code Online (Sandbox Code Playgroud)
如果要访问文本内容,可以调用text.toString().
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |