Kleines Abfrageproblem

Hallo Community,

Ich bin Azubi für Fachinformatiker - Anwendungsentwicklung und will/soll mich die nächsten Jahre mit Java auseinandersetzen. Ich habe bereits 1 jahr C++ programmiert und steige nun um.

Als Programmierebene nutze ich Eclipse auf Windows 7.

Momentan arbeite ich an einem kleinen Projekt um mich in Java mit Dateizugriffen einzuleben.

Es soll eine Art Bestellsoftware sein, die die täglichen Bestellungen des Betriebes automatisch erfasst und in Datumsspezifische Dateien abspeichert. Das Datum lasse ich zur Zeit vom Nutzer eingeben. Da ich bei der Time-Variablen irgendwie nicht durchblicke. Falls jemand weiß, wie ich gesondert Jahr, Monate und Tage aus dieser Time-Variable auslese, wäre ich sehr dankbar.

Vorerst beschäftigt mich aber eine NullPointerExpection.

Folgende Situation:
Ich möchte ein Kontrolldatum in einer Txt-Datei speichern lassen, das soll am Programmanfang geschehen, falls in der Datei noch nichts steht, für diese Fälle habe ich das Kontrolldatum auf den 1.1.2000 gesetzt.

Java:
if (datumsDatei.exists() == true)
		{
			BufferedReader reader = new BufferedReader(new FileReader(datumsDatei));
			temp = reader.readLine();
			if (temp.equals(""))
			{	
				reader.close();  //reader wird geschlossen damit er danach wieder am Dateianfang beginnt.
				
				SchreibeNeueDatumsDatei(kontrolljahr,kontrollmonat,kontrolltag,datumsDatei);
			}
		}

	else 
			{			
				System.out.println("\t\t\tUnerwarteter Systemabbruch");
				System.out.println("\t\t\t    Fehlercode: X001");
				System.out.println("\t\t\t Programm wird beendet;");
			}
Beim if tritt die NullPointerException auf, da er aus der Datei, die zu Beginn ausgelesen wird, nichts rauslesen kann. Sollte aber als String "" nicht "Nichts" in der Datei entsprechen? auch ein temp.equals(null) bringt gar nichts.

Bitte um Hilfe, ich verstehs einfach nicht. ???:L

Danke im Vorraus :applaus:
 
public String readLine()
throws IOException
Reads a line of text. A line is considered to be terminated by any one of a line feed ('\n'), a carriage return ('\r'), or a carriage return followed immediately by a linefeed.

Returns:
A String containing the contents of the line, not including any line-termination characters, or null if the end of the stream has been reached
Throws:
IOException - If an I/O error occurs

das problem ist nicht der inhalt, sondern temp ist schlichtweg null, da das ende der datei erreicht wurde 🙂 .. daher auch die Exception
 
Mit equals vergleicht man Objekte auf Gleichheit. null ist kein Objekt ;-)
Java:
if (temp==null)

Noch eine Anmerkung zu
Java:
if (datumsDatei.exists() == true)
die Methode exists liefert bereits einen boolean:
Java:
if (datumsDatei.exists())
 

Neue Themen


Zurück
Oben