2

write the code to open Jframe, Scan barcode over there, read that and go into correct file, search for the cust_number and read that line and write into new file.. I am getting two problem please help me!! Thanks!!

Here is my code:

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);
    }

}

problem is while writing that line in file..

bfAll.write(line);

its only writing one line last one.. I need to write all the lines in one file, I think its replace!! Please help me!! Thanks!!

And In Jframe!! I scan is:

027421940|072213|BW|
600295885|072113|BW|
600253827|072113|BW|
600295333885|072113|LETTERS|

search for all 027421940 cust_number in file:: read that line write in file.. but, its only writing one line in file.. I think its replace that's why!! Please help me I have no idea!! Thanks in advanced!!

4

1 回答 1

1

readline 使当前指针前进。找到正确的行后,您似乎只想打印出已有的“行”值,而不是读取下一行。

于 2013-07-24T13:16:06.193 回答