Фильтрация текста из BufferedReader в Java - PullRequest
0 голосов
/ 12 мая 2018

В настоящее время работает над проектом, который требует, чтобы я прочитал в файле более 50 тыс. Строк.В настоящее время я использую класс BufferedReader для чтения входных данных и представления данных в текстовой области.В настоящее время приложение просто воспроизводит файл в моем собственном HMI, аналогичном текстовому редактору, однако я хотел бы отличаться тем, что для каждой строки есть определенные начальные слова, которые я бы не хотел отображать в текстовой области ...Я считаю, что мой недостаток опыта с буферами ответственен за мои проблемы.Я попытался реализовать код в следующих строках:

private void insertSyrFile(BufferedReader buffer, JFileChooser chooser) throws IOException{
    String line;
    //reader = "\n";
    try{
        reader = new FileReader(chooser.getSelectedFile().toString());
        buffer = new BufferedReader(reader);

        while ((line = buffer.readLine()) != null){
        if (!line.startsWith("Elaborating"))
            origSyrTextFeild.read(buffer, null);

    }
    }catch(Exception e){
        JOptionPane.showMessageDialog(null, e);
    }       
}

Этот код был реализован с помощью следующего обработчика событий кнопки:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    JFileChooser chooser = new JFileChooser();
    chooser.showOpenDialog(null);
    syrFile.openFile(chooser.getSelectedFile().toString());

    try {
        insertSyrFile(buffer, chooser);     //origSyrTextFeild.setText(syrFile.readFileLine());
    } catch (IOException ex) {
        Logger.getLogger(ParsingAppMainFrame.class.getName()).log(Level.SEVERE, null, ex);
    }   
}

... с использованием этого кода, хотя у меня естьЕсли оператор для проверки строки, исходный файл по-прежнему воспроизводится без обработки файла.Я все еще новичок в Java, однако, если кто-то понимает, в чем заключается моя цель, и у меня есть понимание, я буду признателен за любые идеи !!

1 Ответ

0 голосов
/ 12 мая 2018

Полагаю, вы можете использовать "origSyrTextFeild.append (line);"вместо "origSyrTextFeild.read (buffer, null);".Потому что оператор if проверяет метод "line", но метод "read" получает содержимое из исходного буфера.

...