Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Prüfung, ob BufferedReader-Stream LEER ist (JAVA) (https://www.delphipraxis.net/18243-pruefung-ob-bufferedreader-stream-leer-ist-java.html)

Dannyboy 16. Mär 2004 14:33


Prüfung, ob BufferedReader-Stream LEER ist (JAVA)
 
Hallo zusammen,
ich möchte in einem JAVA Programm prüfen, ob ein BufferedReader LEER ist.

Ich habe bisher folgendes versucht:
Code:
if (<objekt von BufferedReader> == null) ...
Das Problem ist, dass diese Abfrage prüft, ob der Stream null ist oder eine Instanz erstellt wurde.
Sie prüft aber nicht, ob er existiert und LEER ist, d.h. keinen Inhalt hat.
Nach readLine() zu fragen, geht auch nicht, da dann leider der Zeiger auf die
nächste Zeile zeigt.

Hatte jemand dieses Stream-Problem schon mal?

HolyCow 16. Mär 2004 16:43

Re: Prüfung, ob BufferedReader-Stream LEER ist (JAVA)
 
Kommt natürlich darauf an, was für ein Stream/Reader unterhalb des BufferedReader liegt. Du könntest aber dies versuchen:

Code:
BufferedReader.ready()
Zitat:

Tell whether this stream is ready to be read. An InputStreamReader is ready if its input buffer is not empty, or if bytes are available to be read from the underlying byte stream.

Dannyboy 18. Mär 2004 11:16

Re: Prüfung, ob BufferedReader-Stream LEER ist (JAVA)
 
@Holy Cow: Dank' Dir, Du hast mich auf eine gute Idee gebracht.
Code:
public void output() {
     try {
        String line;
        System.out.print("Standard Ausgabe: ");
        line = getstdOut().readLine();
        
        if(line == null) System.out.println("<keine Ausgabe>");
        else  {             
           System.out.println();
           while (line != null) {
                   System.out.println(line);
                   line = getstdOut().readLine();
                     }              
             }
        System.out.print("Standard Error: ");       
        line = getstdErr().readLine();       
        if(line == null) System.out.println("<kein Fehler>");
        else  {             
           System.out.println();
           while (line != null) {
                   System.out.println(line);
                   line = getstdErr().readLine();
                     }                         
        }
     } //end try
     catch (Exception err) {
            err.printStackTrace();
       }            
 }


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz