'Nix' aus Textdokument lesen

TucMAn

Mitglied
Was geht ab?
Ich bin wieder Tuc,
ich schreib momentan an einem neuen Passwort Programm und habe ein Problem.
Undzwar will ich aus einer Textdatei lesen lassen was auch soweit gar kein Problem ist. Doch ich will das Programm so schreiben falls die Textdatei leer ist dann solls halt nen neues Passwort vom User anfordern Naja schaut selbst.
Java:
import java.util.*;
import java.io.*;

public class Passwortprogramm{
  public static void main(String[]args)throws IOException  {
   
    Scanner scan= new Scanner(System.in);
    FileWriter fw= new FileWriter("C:/Users/Till.Till´s_PC/Desktop/Passwortprogramm/Speicher.txt");
    FileReader fr= new FileReader("C:/Users/Till.Till´s_PC/Desktop/Passwortprogramm/Speicher.txt");
    BufferedReader br = new BufferedReader(fr);
   
    String pwee1,
    pwee2,
    pwe1,
    pwe2,
    pwr,
    leer=new String ("");
   
    pwr = br.readLine();
   
    if (pwr.equals (leer)){
     
      System.out.print("Geben sie ihr neues Passwort ein:");
      pwee1=new String (scan.nextLine());
     
    }
  }
}
Ich denke, dass der den fehlenden Inhalt im Textdokument nicht lesen kann als "" Die Feh lermeldung ist folgende: Exception in thread "main" java.lang.NullPointerException at Passwortprogramm.main(Passwortprogramm.java:21)

Hoffe dass ihr mir helfen könnt euer Tuc :D
 

Tarrew

Top Contributor
Bei einem leeren File würde die readLine-Methode null zurückgeben. Also solltest du pwr auf null überprüfen.

Alternativ kann man das auch so prüfen:
Java:
if (new File("Speicher.txt").length()==0){
        //...
    }
 

Moritz_1234

Mitglied
Ich würde das so machen:

Java:
public void read(){
        String passwort_gelesen_loop;
        String passwort_gelesen;
        try {      
            //auslesen bis nichts mehr kommt, und String bilden
            BufferedReader bfr = new BufferedReader(new FileReader(new File("D:/Passwort.txt")));
      
            StringBuilder sb = new StringBuilder();
            while((passwort_gelesen_loop=bfr.readLine()) != null){
                sb.append(passwort_gelesen_loop);
            }
      
            bfr.close();
            passwort_gelesen=sb.toString();
            System.out.println(passwort_gelesen);
            //Überprüfen, ob Passwort = ""
            if(passwort_gelesen.equals("")){
                //Wenn ja, dann neues Passwort anfordern
                System.out.println("Bitte geben sie ein neues Passwort ein.");
                Scanner scan = new Scanner(System.in);
                String neuesPasswort=scan.next();
          
               //Neues Passwort in Datei schreiben
                BufferedWriter bfw = new BufferedWriter(new FileWriter(new File("D:/Passwort.txt")));
                bfw.write(neuesPasswort);
                bfw.close();
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

Wenn du das mit while((passwort_gelesen_loop=bfr.readLine()) != null) ...
machst, dann kannst du das ohne Probleme mit
passwort_gelesen.equals(leer); vergleichen :)
 
Zuletzt bearbeitet von einem Moderator:

TucMAn

Mitglied
Bei einem leeren File würde die readLine-Methode null zurückgeben. Also solltest du pwr auf null überprüfen.

Alternativ kann man das auch so prüfen:
Java:
if (new File("Speicher.txt").length()==0){
        //...
    }
Stimmt das Programm lsst sich auf jeden Fall schoma ausführen nur leider is dem Programm egal ob in dem Textdokument was steht oder nicht es fragt immer nach einem neuen Passwort auch wenn ich else{blabla} mache... Hättest du da vllt. noch ne Idee? :eek:
 

TucMAn

Mitglied
Ich würde das so machen:

Code:
public void read(){
        String passwort_gelesen_loop;
        String passwort_gelesen;
        try {
      
            //auslesen bis nichts mehr kommt, und String bilden
            BufferedReader bfr = new BufferedReader(new FileReader(new File("D:/Passwort.txt")));
      
            StringBuilder sb = new StringBuilder();
            while((passwort_gelesen_loop=bfr.readLine()) != null){
                sb.append(passwort_gelesen_loop);
            }
      
            bfr.close();
      
            passwort_gelesen=sb.toString();
      
      
            System.out.println(passwort_gelesen);
      
            //Überprüfen, ob Passwort = ""
  
            if(passwort_gelesen.equals("")){
          
          
          
                //Wenn ja, dann neues Passwort anfordern
                System.out.println("Bitte geben sie ein neues Passwort ein.");
                Scanner scan = new Scanner(System.in);
                String neuesPasswort=scan.next();
          
               //Neues Passwort in Datei schreiben
                BufferedWriter bfw = new BufferedWriter(new FileWriter(new File("D:/Passwort.txt")));
          
                bfw.write(neuesPasswort);
          
                bfw.close();
          
          
            }
      
      
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
      
      
        }
  
  
  
  
    }

Wenn du das mit while((passwort_gelesen_loop=bfr.readLine()) != null) ...
machst, dann kannst du das ohne Probleme mit
passwort_gelesen.equals(leer); vergleichen :)
Alles klar auch Danke für deine Antwort ich werde es mal en bissel anders Probieren aber schreibe auf jeden Fall die Lösung wenn ich sie gefunden hab!:D
 

Tarrew

Top Contributor
Stimmt das Programm lsst sich auf jeden Fall schoma ausführen nur leider is dem Programm egal ob in dem Textdokument was steht oder nicht es fragt immer nach einem neuen Passwort auch wenn ich else{blabla} mache... Hättest du da vllt. noch ne Idee? :eek:
Sicher, dass du den richtigen Pfad angegeben hast? Bei mir geht alles.
 

TucMAn

Mitglied
Sicher, dass du den richtigen Pfad angegeben hast? Bei mir geht alles.
Der Pfad müsste stimmen wahrscheinlich funzts nichts weil der momentan den Kram nicht mal richtig in dem Textdokument speichert! :(
Ich probiers nochmal mit nem BufferedWriter!
-edit
Jetzt schreibt ers zwar in Speicher.txt allerdings springt der immer in if naja hier nochmal die Code stelle:
Java:
 if(new File("Speicher.txt").length()==0){
     
      System.out.print("Geben sie ihr neues Passwort ein:");
      pwee1=new String (scan.nextLine());
      bw.write(pwee1);
      bw.close();
    }
 
Zuletzt bearbeitet:

Harry Kane

Top Contributor
Wie soll jemand anhand der von dir geposteten 6 Zeilen erkennen, wo das Problem liegt? Was ist bw? Aus welcher Datei bedient er sich?
Du willst offenbar etwas in eine Datei abspeichern, aber nur wenn da nix drinsteht. Dafür könntest du so vorgehen:
1. Neues File anlegen, was auf den gewünschten Pfad zeigt.
2. Überprüfen, ob file.exists() und file.length() > 0.
3. Falls ja, mit einem FileReader aus dem File lesen.
4. Falls nein, Passwort anfordern und mit einem FileWriter in der Dateispeichern.
Was ich an deinen Schnipsel nicht verstehe: warum überprüfst du ein new File("Speicher.txt") auf seine Länge und nicht ein existierendes?
 

TucMAn

Mitglied
Wie soll jemand anhand der von dir geposteten 6 Zeilen erkennen, wo das Problem liegt? Was ist bw? Aus welcher Datei bedient er sich?
Du willst offenbar etwas in eine Datei abspeichern, aber nur wenn da nix drinsteht. Dafür könntest du so vorgehen:
1. Neues File anlegen, was auf den gewünschten Pfad zeigt.
2. Überprüfen, ob file.exists() und file.length() > 0.
3. Falls ja, mit einem FileReader aus dem File lesen.
4. Falls nein, Passwort anfordern und mit einem FileWriter in der Dateispeichern.
Was ich an deinen Schnipsel nicht verstehe: warum überprüfst du ein new File("Speicher.txt") auf seine Länge und nicht ein existierendes?
Les doch was ich vorher geschrieben hab das bezog sich halt nur auf den if-block... o_O
und bei dem existenz Ding gehts mir darum wenn ich das Programm ganz neu starte und die Textdatei zwar existiert aber halt leer ist sodass quasi kein Passwort existiert dann soll der halt nen neues Passwort anfordern.
 

Harry Kane

Top Contributor
Les doch was ich vorher geschrieben hab das bezog sich halt nur auf den if-block...
*seufz*
Du hast bisher ein Codeschnipsel gepostet, und da ist von bw keine Rede. Man kann jetzt vermuten, dass bw ein BufferedWriter ist, der in den FileWriter fw schreibt, aber bw kann prinzipiell auch was ganz anderes sein.
Da du dich zu meiner Frage nicht geäussert hast, schreibe ich hier mal hin, wie ich mir so eine Abfrage vorstellen würde:

Java:
public class Passwortprogramm{
  public static void main(String[]args)throws IOException  {

  Scanner scan= new Scanner(System.in);
  File passwortSpeicher = new File("C:/Users/Till.Till´s_PC/Desktop/Passwortprogramm/Speicher.txt");
  if(passwortSpeicher.exists() && passwortSpeicher.length() > 0){
  BufferedReader br = new BufferedReader(new FileReader(file));
  //Passwort einlesen
  }
  else{
  System.out.print("Geben sie ihr neues Passwort ein:");
  pwee1=new String (scan.nextLine());
  BufferedWriter bw = new BufferedWriter(new FileWriter(file));
  bw.write(pwee1);
  bw.flush();
  bw.close();
  }
}
Ausserhalb des if-Blocks wird nur das File instanziiert, weder die Reader noch die Writer, weil sich ja erst bei der if-Abfrage entscheidet, welcher gebraucht wird. Und bei dem "existenz-Ding" wird das intanziierte File verwendet, kein "Speicher.txt" Ding was in dem Verzeichnis liegen kann wo du des vermutest aber auch ganz woanders.
 

TucMAn

Mitglied
*seufz*
Du hast bisher ein Codeschnipsel gepostet, und da ist von bw keine Rede. Man kann jetzt vermuten, dass bw ein BufferedWriter ist, der in den FileWriter fw schreibt, aber bw kann prinzipiell auch was ganz anderes sein.
Da du dich zu meiner Frage nicht geäussert hast, schreibe ich hier mal hin, wie ich mir so eine Abfrage vorstellen würde:

Java:
public class Passwortprogramm{
  public static void main(String[]args)throws IOException  {

  Scanner scan= new Scanner(System.in);
  File passwortSpeicher = new File("C:/Users/Till.Till´s_PC/Desktop/Passwortprogramm/Speicher.txt");
  if(passwortSpeicher.exists() && passwortSpeicher.length() > 0){
  BufferedReader br = new BufferedReader(new FileReader(file));
  //Passwort einlesen
  }
  else{
  System.out.print("Geben sie ihr neues Passwort ein:");
  pwee1=new String (scan.nextLine());
  BufferedWriter bw = new BufferedWriter(new FileWriter(file));
  bw.write(pwee1);
  bw.flush();
  bw.close();
  }
}
Ausserhalb des if-Blocks wird nur das File instanziiert, weder die Reader noch die Writer, weil sich ja erst bei der if-Abfrage entscheidet, welcher gebraucht wird. Und bei dem "existenz-Ding" wird das intanziierte File verwendet, kein "Speicher.txt" Ding was in dem Verzeichnis liegen kann wo du des vermutest aber auch ganz woanders.
Jo danke für deine Hilfe hab auch selber inzwischen herausgefunden wie aber warum bist du immernoch der Meinung, dass ich nur nen Tex tschnipsel gepostet habe wenn ich doch vorher nen ganzen code geschrieben habe und gesagt hab dass sich der schnipsel nur auf den if-Block bezieht? D:
 

Joose

Top Contributor
aber warum bist du immernoch der Meinung, dass ich nur nen Tex tschnipsel gepostet habe wenn ich doch vorher nen ganzen code geschrieben habe und gesagt hab dass sich der schnipsel nur auf den if-Block bezieht? D:

Weil dieser Code von Post#7 'Nix' aus Textdokument lesen
nicht im Code vom Anfangspost vorkommt. Sprich dazwischen hast du schon wieder an deinem Code herumgebastelt und von dieser Änderung wissen wir natürlich nichts ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Methoden Textdokument erstellen und auslesen. Java Basics - Anfänger-Themen 46
G Textdokument ASCII ändern Java Basics - Anfänger-Themen 10
S Absatz aus Textdokument abfragen Java Basics - Anfänger-Themen 6
I Japanischen Text aus Textdokument einlesen Java Basics - Anfänger-Themen 35
A Highscore mit Textdokument Java Basics - Anfänger-Themen 16
J Tabelle in Textdokument einfügen Java Basics - Anfänger-Themen 3
A Hilfe beim Lesen von Pfaden und Systemvariablen Java Basics - Anfänger-Themen 3
I API - zurückgegebener JSON String lesen und in Entity konvertieren Java Basics - Anfänger-Themen 2
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
N Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen Java Basics - Anfänger-Themen 4
W Timestamp lesen Java Basics - Anfänger-Themen 6
J Dateien lesen und schreiben Java Basics - Anfänger-Themen 5
F MS365 Kalender lesen Java Basics - Anfänger-Themen 5
Robin Gentele XML von Webserver lesen und ausgeben Java Basics - Anfänger-Themen 5
H Scripte oder Programmcode aus Datei lesen? Java Basics - Anfänger-Themen 5
S Zufällige ungerade Zeile aus Text-Datei lesen Java Basics - Anfänger-Themen 5
C Fehlermeldungen lesen Java Basics - Anfänger-Themen 2
S Allgemeine Java Codes lesen und verstehen Java Basics - Anfänger-Themen 7
NeoLexx Datenströme Lesen und Schreiben einer Textdatei Java Basics - Anfänger-Themen 2
rafi072001 Lesen aus einem Excel File Java Basics - Anfänger-Themen 10
T Klassen Den Wert aus Array lesen lassen Java Basics - Anfänger-Themen 12
J Lesen und schreiben in eine Datei(Anfänger- Dateizugriffe) Java Basics - Anfänger-Themen 3
S JSON Datei schreiben und lesen Java Basics - Anfänger-Themen 3
S Java Array Länge aus anderer Klasse lesen Java Basics - Anfänger-Themen 1
G Excle datei aus resources folder finden und lesen Java Basics - Anfänger-Themen 5
J Datei aus Projektfolder lesen Java Basics - Anfänger-Themen 12
H Vererbung Static Scanner Objekt verwenden - von StdIn in einer importierten Klasse lesen Java Basics - Anfänger-Themen 10
K Probleme beim Programm schreiben - Lesen von Dateiinhalten -zaehlen von Wörtern/ Buchstaben Java Basics - Anfänger-Themen 4
S Tastatur input lesen Java Basics - Anfänger-Themen 7
S Mit FileReader lesen, in ArrayList speichern Java Basics - Anfänger-Themen 4
B Aus Datei lesen Java Basics - Anfänger-Themen 23
B Aus Datei lesen Java Basics - Anfänger-Themen 0
deatzi Wert aus anderer Klasse lesen Java Basics - Anfänger-Themen 7
W Wie lasse ich meine Ausgabe nach dem Lesen verschwinden ? Java Basics - Anfänger-Themen 1
A JSON Lesen und Schreiben. Java Basics - Anfänger-Themen 3
S Daten lesen und speichern Java Basics - Anfänger-Themen 26
C Input/Output Datei aus Startverzeichnis lesen Java Basics - Anfänger-Themen 6
amazinglife77 Input/Output Lesen/Schreiben Properties: in eclipse geht, als JAR nicht Java Basics - Anfänger-Themen 4
G Input/Output Aus txt-Datei lesen, aus Ordner Java Basics - Anfänger-Themen 1
S BufferedReader nächste Zeile lesen Java Basics - Anfänger-Themen 4
sourcecorn Werte aus einem File lesen Java Basics - Anfänger-Themen 6
G Jar-Archiv zum Lesen einer Konfigurationsdatei Java Basics - Anfänger-Themen 9
MaxG. Input/Output Datei lesen Java Basics - Anfänger-Themen 3
Hacer Quellcode lesen Java Basics - Anfänger-Themen 13
H Aus wav-datei lesen und in neue wav-datei speichern Java Basics - Anfänger-Themen 10
N Lesen eines files mit FILES.lines Java Basics - Anfänger-Themen 11
A Private Attribut aus fremder Klasse lesen ? Java Basics - Anfänger-Themen 19
R Ab einer bestimmten Zeile lesen Java Basics - Anfänger-Themen 3
P vokale konsonanten ziffern satzzeichen aus string lesen. hab kiene ahnung Java Basics - Anfänger-Themen 10
A textfeldwerte aus array lesen Java Basics - Anfänger-Themen 27
K Classpath Lesen von Property-File Java Basics - Anfänger-Themen 1
D Methoden Array aus Datei lesen und weitergeben? Java Basics - Anfänger-Themen 7
G tga Datei lesen und in eine matrix umwandeln Java Basics - Anfänger-Themen 1
F Input/Output Dateien lesen/schreiben Java Basics - Anfänger-Themen 1
E lesen csv file column by column Java Basics - Anfänger-Themen 10
G Bis zu einem bestimmten Punkt aus Datei lesen Java Basics - Anfänger-Themen 2
K Mit Scanner aus einer txt Datei lesen und jede Person mit name, vorname, geburtsdatum speichern Java Basics - Anfänger-Themen 5
K Dateien lesen | IndexOutOfBoundsException Java Basics - Anfänger-Themen 2
E Input/Output Property-Datei aus einer Zip lesen in in einer anderen Zip-Datei ist Java Basics - Anfänger-Themen 3
B Input/Output Scanner-Probleme bei String-Lesen Java Basics - Anfänger-Themen 3
I Properties oder Umgebungsvariablen mit ${irgendwas} lesen? Java Basics - Anfänger-Themen 2
D Lesen aus Datei (java.util.NoSuchElementException) Java Basics - Anfänger-Themen 22
D Problem beim Lesen einer txt-Datei Java Basics - Anfänger-Themen 8
G Zeile charweise lesen Java Basics - Anfänger-Themen 3
J Aus Datei lesen und ausgeben Java Basics - Anfänger-Themen 4
N Bestimmte Inhalte aus Datei lesen Java Basics - Anfänger-Themen 11
G Datei zeilenweise lesen Java Basics - Anfänger-Themen 19
M Wie sämtliche Schlüssel und Attibutwerte aus einer Propertie Datei lesen? Java Basics - Anfänger-Themen 3
S Compiler-Fehler jOpenDocument Kompelierfehler - ODS Datei lesen Java Basics - Anfänger-Themen 2
C Aus einer Textdatei Zahlen lesen mit Leerzeichen Java Basics - Anfänger-Themen 11
T BufferReader soll datei mehrmals lesen Java Basics - Anfänger-Themen 13
G Leere Zeile lesen Java Basics - Anfänger-Themen 12
F Effizientes Lesen von 65 Datein mit Boolean Werten Java Basics - Anfänger-Themen 6
S Datei aus JAR lesen. Java Basics - Anfänger-Themen 9
G Zeilenweise lesen Java Basics - Anfänger-Themen 17
C Mehrere Tasten beim KeyListener gleichzeitig lesen Java Basics - Anfänger-Themen 2
B Erst lesen: Automatisch Texteingabe bestätigen Java Basics - Anfänger-Themen 6
S Textdatei lesen, Methode gibt nur die letzte Zeile aus. Warum? Java Basics - Anfänger-Themen 5
X Einen Text aus dem Netz lesen?! Java Basics - Anfänger-Themen 3
J Java API lesen lernen Java Basics - Anfänger-Themen 4
Z Problem beim Lesen und Schreiben einer Datei Java Basics - Anfänger-Themen 10
N Erste Zeile bei BufferedReader doppelt lesen? Java Basics - Anfänger-Themen 2
R Input/Output einzelnes char aus .txt lesen Java Basics - Anfänger-Themen 11
R XML mit unsortierten Nodes lesen Java Basics - Anfänger-Themen 4
M Zahlen aus Array lesen Java Basics - Anfänger-Themen 19
I Methoden zum lesen und speichern von Dateien Java Basics - Anfänger-Themen 2
M Dateien erstellen/ bearbeiten/ lesen Java Basics - Anfänger-Themen 9
M Input/Output Viele short aus Datei lesen und von Little Endian zu Big Endian umwandeln Java Basics - Anfänger-Themen 12
J Lesen von Textdokumenten Java Basics - Anfänger-Themen 3
J Zeichen aus String Array lesen Java Basics - Anfänger-Themen 13
J Können mehere Threads parallel eine Datei lesen? Java Basics - Anfänger-Themen 4
A Eine Datei Lesen und bestimmte Position überschreiben Java Basics - Anfänger-Themen 2
J Erste Schritte ExceptionError beim Lesen eines .ZIP Java Basics - Anfänger-Themen 19
B Javadoc richtig lesen... Java Basics - Anfänger-Themen 4
S Zeichen von Telnet lesen Java Basics - Anfänger-Themen 5
H Lesen einer Texdatei im Web Java Basics - Anfänger-Themen 10
J Input/Output Textdatei in einer JAR lesen Java Basics - Anfänger-Themen 3
G Konto-Historie speichern/lesen Java Basics - Anfänger-Themen 4
T Erste Schritte einzelne Wörter aus textdatei lesen... Java Basics - Anfänger-Themen 4
J Per I/O Streams in LinkedList oder ArrayList schreiben/lesen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben