关于java读取文件时的一点小问题
我处理一个test.txt文本文件,内容格式是这样的:
-Start
XXX
-End
-Start
XXX
-End
.................整个文件都是按照这样的格式排下去
我当前要做的是把文件里的每个XXX都取出来并放进一个队列里,我目前是这样处理的:
FileInputStream fis = new FileInputStream("test.txt");
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
String line = "";
StringBuilder sb = new StringBuilder();
while((line = br.readLine())!=null){
if(sb.toString().endsWith("-End\n")){
//TestQueue是一个LinkedBlockingQueue<String> 队列
Queue.add(sb.toString());
sb.delete(0,sb.length());
}
sb.append(line).append("\n");
}
现在遇到的问题是:文本里有些XXX特别长,最长的可能有几十万行,我每读一行的时候都对进行if(sb.toString().endsWith("-End\n"))判断,导致读文件特别慢,有什么办法可以跳过这种特别大的XXX,在不修改test.txt格式的情况下