Java代码,在文件中搜索数字并读取行

Java代码,在文件中搜索数字并读取行,java,Java,写下打开Jframe的代码,扫描那边的条形码,读取并进入正确的文件,搜索客户号,读取该行并写入新文件。。我有两个问题,请帮帮我!!谢谢 这是我的密码: import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fil

写下打开Jframe的代码,扫描那边的条形码,读取并进入正确的文件,搜索客户号,读取该行并写入新文件。。我有两个问题,请帮帮我!!谢谢

这是我的密码:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;


public class searchfile2 {

    /**
     * @param args
     */

    public static void delFileFromDir(String dirPath) {
        File dir = new File(dirPath);
        if(dir.listFiles() == null)
            return;
        for(File file: dir.listFiles())
        {
            if(!file.isDirectory())
                file.delete();
        }
    }


    public static void main(String[] args) throws IOException  {
        // TODO Auto-generated method stub

        final JFrame frame = new JFrame("Scan Here: ");
        JPanel panel = new JPanel();

        final JTextArea text = new JTextArea(20, 40);
        JButton button = new JButton("Enter");

        frame.add(panel);
        panel.add(text);
        panel.add(button);

        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                BufferedReader br = null;
                BufferedWriter bfAll = null;

                String scanner = (text.getText());
                //System.out.println(scanner);

                try {
                    for (String s : scanner.split("\n")) {
                        String[] actionID = s.split("\\|");
                        String cust_num  = actionID[0];
                        String date = actionID[1];
                        String type = actionID[2];
                        //System.out.println(cust_num + "     Type:     " + type);

                        if(type.equals("BW")){
                            //System.out.println(type);

                            File folderBW = new File("prod\\BW");
                            File[] BFFileBW = folderBW.listFiles();

                            String reprintbw = ("out\\" + "BWreprintrecord" + ".txt");
                            bfAll = new BufferedWriter(new FileWriter(reprintbw));


                            for (File file1 : BFFileBW) {
                                String strbw = file1.getName();
                                //System.out.println(strbw);


                                if((date.subSequence(0, 2)).equals(strbw.subSequence(0, 2)) && (date.substring(2, 4)).equals(strbw.subSequence(3, 5)) && (date.subSequence(4, 6)).equals(strbw.subSequence(8, 10))){
                                    System.out.println("hdssdjsshdghjsdghjsdghjsdghjsdgjhsd               " + strbw);

                                    File foldertotalcountlettersdate = new File("prod\\BW\\" + strbw);
                                    File[] listOfFilestotalcountlettersdate = foldertotalcountlettersdate.listFiles();

                                    String totalcountlettersdate;

                                    try{
                                        for (int itotalcountdate = 0; itotalcountdate < listOfFilestotalcountlettersdate.length; itotalcountdate++) {
                                            if (listOfFilestotalcountlettersdate[itotalcountdate].isFile()) {
                                                totalcountlettersdate = listOfFilestotalcountlettersdate[itotalcountdate].getAbsolutePath();
                                                System.out.println("File Name: " + totalcountlettersdate);

                                                br = new BufferedReader(new FileReader(totalcountlettersdate));
                                                String line;
                                                line = br.readLine();
                                                bfAll.write(line);
                                                bfAll.newLine();
                                                line = br.readLine();
                                                bfAll.write(line);bfAll.newLine();
                                                line = br.readLine();
                                                bfAll.write(line);bfAll.newLine();
                                                line = br.readLine();
                                                bfAll.write(line);bfAll.newLine();
                                                line = br.readLine();
                                                bfAll.write(line);bfAll.newLine();
                                                line = br.readLine();
                                                bfAll.write(line);bfAll.newLine();
                                                line = br.readLine();
                                                bfAll.write(line);bfAll.newLine();

                                                while ((line = br.readLine()) != null) {

                                                    String[] actionIDprod = line.split("\\|");
                                                    String typeprod  = actionIDprod[3];
                                                    String typeprodname  = actionIDprod[4];

                                                    if(typeprod.equals(cust_num)) {
                                                        line = br.readLine();
                                                        System.out.println(line);
                                                        System.out.println(cust_num + "-------" + typeprodname);
                                                    }
                                                }
                                                br.close();

                                            }
                                        }
                                    } catch(Exception e2) {
                                        e2.printStackTrace();
                                    }

                                }
                            }

                            bfAll.newLine();
                            bfAll.flush();
                            bfAll.close();
                        }

                    }

                } catch(Exception e1) {
                    e1.printStackTrace();
                }

                frame.dispose();
            }
            });
        frame.setSize(500, 400);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

}
它只写了最后一行。。我需要把所有的行写在一个文件中,我想它会被替换!!请帮帮我!!谢谢

在Jframe中!! 我的目标是:

027421940|072213|BW|
600295885|072113|BW|
600253827|072113|BW|
600295333885|072113|LETTERS|
在文件中搜索所有027421940客户编号::读取该行并写入文件。。
但是,它在文件中只写了一行。。我想这就是为什么!!请帮帮我,我不知道!!提前感谢

readline使当前指针前进。一旦你找到了正确的行,看起来你只是想打印出你已有的“行”的值,而不是读下一行

谢谢你!!现在开始工作了!!:)它在写那句话!!如何将所有行写入一个文件??请帮帮我!!在文件中只写一行。。我想是换了,请帮帮我!!谢谢您需要在第一个“for”循环之外创建BufferedWriter。现在,您正在为每一行创建一个新的编写器,这就是为什么文件中只有一行。非常感谢!!成功了!!:)再次感谢!!
027421940|072213|BW|
600295885|072113|BW|
600253827|072113|BW|
600295333885|072113|LETTERS|