我有大文件(约30mb),这里是我用来从文件中读取数据的代码
BufferedReader br = new BufferedReader(new FileReader(file));
try {
String line = br.readLine();
while (line != null) {
sb.append(line).append("\n");
line = br.readLine();
}
然后我需要拆分我读过的内容,所以我使用
String[] inst = sb.toString().split("GO");
问题是有时子字符串超过了最大字符串长度,我无法获取字符串中的所有数据。我怎么能摆脱这个?
由于
答案 0 :(得分:1)
Scanner s = new Scanner(input).useDelimiter("GO");
并使用s.next()
答案 1 :(得分:0)
为什么部分: - 错误的结果可能是非连续堆段的结果,因为CMS收集器不会解压缩内存。
(虽然没有回答你如何解决部分问题。)
您可以选择分批加载整个字符串,即使用子字符串