I need to read large file(like 400 mb) and make regex match in it. The problem is that it takes like 40 sec to read 800kb file and 15+ min for 5 mb file. Here is code:
 private int regexCompare(String text,Pattern p){
    if (text.isEmpty()) return 0;
    Matcher m = p.matcher(text);
    while (m.find()) {
        word.add(m.group());
    }
    combineBrackets(word);
    return 1;
}
Regex: String symbolsPattern = "([\\p{L}\\p{N}_#]+|[<>+\\-/*&!=.]+|[\\[\\]{}()])";
here is method, where i read file and match it
        Date currentTime = new Date();
    FileInputStream fis = new FileInputStream(filePath);
    BufferedReader br = new BufferedReader(new InputStreamReader(fis,"UTF-8"));
    while(br.ready())
    {
        fileContents += br.readLine() + "\n";
    }
    br.close();
    regexCompare(fileContents,pattern);
    Date newTime = new Date();
    double msDelay = newTime.getTime() - currentTime.getTime();
    double toMin = 1000*60;
    timeLabel.setText("Maked in " + msDelay/toMin + " min");
