Datei einlesen mit Exceptions

Status
Nicht offen für weitere Antworten.

r0bbe

Mitglied
Hi,

Ich wollte eine Textdatei einlesen und die Exceptions erstmal wegwerfen, funktioniert auch wunderbar.
Anschließend wollte ich das gleiche nochmal machen und die Exceptions diesmal behandeln, aber irgendwas mach ich falsch.

Hier der Code der funktioniert:

Code:
package edu.IOExamples;
import java.io.*;
public class ReadFile{
  public static void main(String[] args) throws FileNotFoundException, IOException{
    String zeile="";
    File datei = new File("edu/IOExamples/test.txt");
  
    BufferedReader br = new BufferedReader(new FileReader(datei));
    
    do {  
      zeile = br.readLine();
      if (zeile != null)
	System.out.println(zeile);
      else
	System.out.println("EOF");
    } while (zeile!= null);   
  } 
}

Jetzt der Code der nicht funktioniert:
(Wie man schnell erkennt hab ich nicht viel geändert, die do while Schleife am Ende ist mit copy & past eingefügt, und ansonsten hab ich nur den FileReader in einen TryCatch Block gepackt.)

Code:
package edu.IOExamples;
import java.io.*;
public class ReadFile2{
  public static void main(String[] args) throws IOException{
    String zeile="";
    File datei = new File("edu/IOExamples/test.txt");
  
    try {
      BufferedReader br = new BufferedReader(new FileReader(datei));
    }
    catch (FileNotFoundException e) {
      System.out.println("FileNotFoundException");
    }

    do {  
      zeile = br.readLine();
      if (zeile != null)
	System.out.println(zeile);
      else
	System.out.println("EOF");
    } while (zeile!= null);   
  } 
}

Fehlermeldung:

Code:
r0bbe@r0bbe-desktop:~/workspace/java$ javac edu/IOExamples/ReadFile2.java 
edu/IOExamples/ReadFile2.java:28: cannot find symbol
symbol  : variable br
location: class edu.IOExamples.ReadFile2
      zeile = br.readLine();
              ^
1 error

Wie kann das sein? Wieso findet der die Methode plötzlich nicht mehr? eigentlich müsste mir der buffered reader doch zur Verfügung stehen oder?

Danke fürs lesen,
 
wieso 'eigentlich', einfach nur weil du es gerne so hättest oder mit Begründung?

denn eigentlich gibts in Java die Regel, dass Variablen, die in geschweiften Klammern (Blöcken) definiert sind,
außerhalb nicht sichbar sind

Trick:

Variable x = null;
{
x = irgendwas;
}

// x bekannt
 
Autsch!

Die Regel ist mir eigentlich bekannt, manchmal wunder ich mich echt über meine eigene .... ;-)

Danke, funzt jetzt wunderbar 🙂

kann geclosed werden :>
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben