Announcement

Collapse
No announcement yet.

*.txt nach bereits eingetragener Zeile durchsuchen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • *.txt nach bereits eingetragener Zeile durchsuchen

    Hallo!
    Mein Programm schreibt in eine *.txt eine Zeile. Funktioniert auch einwandfrei ...
    Nun soll es aber vorher prüfen, ob diese Zeile bereits in der Datei vorhanden ist.

    Bisheriger Quellcode:

    File file = new File(
    "PFAD",
    "user_db.txt");

    JFrame f = new JFrame("Datenbankeintragung");
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setSize(400, 100);
    f.setLocation(250, 250);

    String name = JOptionPane
    .showInputDialog("Bitte tragen sie den Nachnamen ein");
    String vorname = JOptionPane
    .showInputDialog("Bitte tragen sie den Vornamen ein");
    String telefon = JOptionPane
    .showInputDialog("Bitte tragen sie die Telefonnummer ein");
    String input = name + ", " + vorname + ", " + telefon + ";";

    if (file.exists()) {
    try {

    FileWriter fw = new FileWriter(file, true);
    fw.write(input + "\r\n");
    fw.close();

    JLabel label;
    label = new JLabel("Der Datensatz wurde geschrieben");
    label.setHorizontalAlignment(JLabel.CENTER);
    f.add(label);
    f.setVisible(true);

    } catch (IOException e) {
    System.out.println(e);
    }
    } else {
    try {
    file.createNewFile();

    FileWriter fw = new FileWriter(file, true);
    fw.write(input + "\r\n");
    fw.close();

    JLabel label;
    label = new JLabel(
    "Die Datei wurde angelegt und der Datensatz wurde geschrieben");
    label.setHorizontalAlignment(JLabel.CENTER);
    f.add(label);
    f.setVisible(true);
    } catch (IOException e) {
    System.out.println(e);
    }
    }

    }

  • #2
    <p> z.B. so:</p>
    <code>
    String test = "foo bar";
    try{
    BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(new File("c:\\test.txt"))));
    String temp;
    while((temp = reader.readLine()) != null ){
    if(test.trim().equals(temp.trim()))
    System.err.println("Enthalten");
    }
    reader.close();
    }catch(FileNotFoundException e){
    e.getMessage();
    //TODO Handle exc
    }catch(IOException e){
    //TODO Handle exc
    e.getMessage();
    }
    </code>

    gruß Simo

    Comment


    • #3
      das hatte ich schon :/
      aber er soll den datensatz ja nicht schreiben wenn er bereits vorhanden ist ..

      Comment


      • #4
        habe schon eine möglichkeit gefunden ...
        für die es interessiert:

        if (file.exists()) {

        boolean write = true;

        try {
        String test = input;
        try {
        BufferedReader reader = new BufferedReader(
        new InputStreamReader(new FileInputStream(file)));
        String temp;
        while ((temp = reader.readLine()) != null) {
        if (test.trim().equalsIgnoreCase(temp.trim())) {
        write = false;
        JLabel label;
        label = new JLabel("Der Datensatz ist bereits in der Datei enthalten");
        label.setHorizontalAlignment(JLabel.CENTER);
        f.add(label);
        f.setVisible(true);

        }
        }
        reader.close();
        } catch (FileNotFoundException e) {
        e.getMessage();
        System.out.println(e);
        }

        if (write == true) {
        FileWriter fw = new FileWriter(file, true);
        fw.write(input + "\r\n");
        fw.close();

        JLabel label;
        label = new JLabel("Der Datensatz wurde erfolgreich geschrieben");
        label.setHorizontalAlignment(JLabel.CENTER);
        f.add(label);
        f.setVisible(true);
        }

        } catch (IOException e) {
        System.out.println(e);
        }

        Comment

        Working...
        X