Парсинга строк блога в массив Java
Я пишу внутреннюю Java-программу для команды, чтобы проанализировать весь файл блога в массив. Однако мой код может получить только часть этого гигантского файла журнала, все записи прикреплены друг к другу без разделителя строк. Источник взят из txt-файла, расположенного на сетевом диске, и в этом случае я установил абсолютный путь в качестве параметра. Вот мой код:
public class ProcessTxt
{
public String[] openFile(String source)
{
List<String> allMatches = new ArrayList<>();
String[] str =new String[]{};
String pattern="^\\d+.\\d+.\\d+.\\d.*\".*?\"$";
Pattern p=Pattern.compile(pattern);
try
{
File sourceFile = new File(source);
// if source is a full path, java will search using that path
// if source is just a name, java will assume its under current working directory
Scanner scanner = new Scanner(sourceFile);
System.out.println(scanner.hasNext()?"true":"false");//debug
while (scanner.hasNextLine())
{
String line=scanner.nextLine();
Matcher m=p.matcher(line);
if (m.matches())
{
allMatches.add(m.group()); // add entire line
}
}
str = allMatches.toArray(new String[0]); // move to array
scanner.close();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
return str;
}
public static void main(String[] args)
{
ProcessTxt pTxt=new ProcessTxt();
String[] arr=pTxt.openFile("PATH\FOLDER\weblog.txt");
for(String s: arr)
{
System.out.println(s);
}
}
inputtream работает, я сомневаюсь, что регулярное выражение не перехватывает все записи, но провело дополнительное тестирование на http://www.regexplanet.com/, регулярное выражение в коде делает свою работу. Есть мысли?