在Java中从BufferedReader中过滤文本
目前正在进行一个项目,该项目要求我读取超过50k行的文件输入。我目前正在使用BufferedReader类读入输入并在文本区域中显示数据。目前,应用程序只是在我自己的HMI中复制文件,类似于文本编辑器,但我想区别的是,每行都有一些我不想在文本区域中显示的起始词。。。我相信我缺乏使用缓冲器的经验是造成我的问题的原因。我尝试过按照以下思路实现代码:在Java中从BufferedReader中过滤文本,java,text,file-io,buffer,Java,Text,File Io,Buffer,目前正在进行一个项目,该项目要求我读取超过50k行的文件输入。我目前正在使用BufferedReader类读入输入并在文本区域中显示数据。目前,应用程序只是在我自己的HMI中复制文件,类似于文本编辑器,但我想区别的是,每行都有一些我不想在文本区域中显示的起始词。。。我相信我缺乏使用缓冲器的经验是造成我的问题的原因。我尝试过按照以下思路实现代码: private void insertSyrFile(BufferedReader buffer, JFileChooser chooser) thro
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);
}
}
。。。使用这段代码,即使我有if语句来检查字符串,原始文件仍然是复制的,没有对文件进行任何处理。我仍然是java的初学者,但是如果有人了解我的目标,并且有任何见解,我会很感激任何想法 我想您可以使用“origsyrtextfield.append(line);”而不是“origsyrtextfield.read(buffer,null);”。因为if语句检查“line”但“read”方法从原始缓冲区获取内容