tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
376
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Lehtis Lehtis ist offline Rookie
    Registriert seit
    Jan 2012
    Beiträge
    7
    Hallo,
    man sollte ja jedes File immer schließen, doch was ist wenn z.B.:

    File f = new file("test.txt");
    FileInputStream fi = new FileInputStream(f);
    BufferdReader br = new BufferdReader(fi);

    Genügt es hier wenn ich br.close() mache oder muss ich alle 3 schließen?
     

  2. #2
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin,

    das sollte reichen - siehe hier:
    http://www.etp.physik.uni-muenchen.d...va/node43.html

    "file" kennt eh' kein close ....

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  3. #3
    Lehtis Lehtis ist offline Rookie
    Registriert seit
    Jan 2012
    Beiträge
    7
    Stimmt file hat gar kein close
    Und dankem also war das eh richtig das ich nur br.close() gemacht habe.
     

  4. #4
    slowfly slowfly ist offline Mitglied Bronze
    Registriert seit
    Mar 2009
    Beiträge
    40
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
      int ch;
       try {
           BufferedReader in = new BufferedReader (
                                  new FileReader ("filename.txt") );
           try {
               while( (ch = in.read()) != -1 ) {
                   // do something ...
               }
               in.close();
           } catch (IOException e) {
               System.out.println("Read error " + e);
           }
       } 
       catch (IOException e) {
           System.out.println("Open error " + e);
       }
    Da wurde ein sehr fataler Fehler gemacht =( -> also ich muss schon sagen, für einen Link von einer Uni fast schon peinlich.
    Das alles funktioniert prinzipiell schon, nur müssen die Ressourcen jeweils in einem finally block geschlossen werden. Denn wenn VOR dem in/outputstream.close eine Exception geworfen wird, werden die Streams nämlich nicht! geschlossen...

    Guggst du hier:
    http://docs.oracle.com/javase/tutori...testreams.html
    Closing a stream when it's no longer needed is very important — so important that CopyBytes uses a finally block to guarantee that both streams will be closed even if an error occurs. This practice helps avoid serious resource leaks.
    Gruss
    slowy
     

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 06.01.10, 11:27
  2. Frage zu PHP-File-Funktionen
    Von stephandziurla im Forum PHP
    Antworten: 1
    Letzter Beitrag: 06.09.05, 17:39
  3. Anfänger-Frage: File-Sharing?
    Von sebone im Forum ASP
    Antworten: 4
    Letzter Beitrag: 23.05.05, 16:03
  4. Frage zu properties (ini File)
    Von Shizzl_chrizzl im Forum Java
    Antworten: 2
    Letzter Beitrag: 08.02.05, 14:34
  5. file in file schließen
    Von madeleineh im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 13.10.03, 20:42