2016-09-13 4 views
0

Ich lerne über Java IO. Im read() Verfahren gibt es einen Hinweis, dassJava-Lese-Methode gibt -1 am Ende der Datei zurück

sagte

es gibt -1 am Ende der Datei

Ich weiß nicht, was das bedeutet? und was ist die Bedeutung von -1 am Ende der Datei Beispiel

sein:

import java.io.*; 
class Simple{ 
public static void main(String args[])throws Exception{ 
    FileReader fr=new FileReader("abc.txt"); 
    int i; 
    while((i=fr.read())!=-1) 
    System.out.println((char)i); 

    fr.close(); 
} 
} 
+0

der Wert -1 ist nicht an und für sich. Das Besondere ist, dass es eine zweite Garantie gibt - dass nichts außer dem Ende einer Datei jemals eine -1 von read() ergibt. Dies macht den Wert -1 zu einer eindeutigen Antwort und lässt Sie genau wissen, wann das Dateiende erreicht ist. – Jeutnarg

Antwort

2

Bitte zuerst die Dokumentation prüfen!

https://docs.oracle.com/javase/7/docs/api/java/io/InputStreamReader.html#read()

Relevante Sektion:

public int read() throws IOException ein einzelnes Zeichen liest.

Überschreibungen:

Returns in der Klasse Reader lesen: Das Zeichen zu lesen, oder -1, wenn das Ende des Stroms erreicht wird

Wirft: IOException - Wenn ein E/A-Fehler auftritt,

Für was es wert ist, werden diese oft bezeichnet als Sentinel Werte. Sentinel-Werte werden verwendet, um eine bestimmte Bedingung über einen Rückgabewert anzuzeigen, der eine offensichtliche ungültige Antwort ist (Beispiel: -1, da dies offensichtlich kein Zeichen ist). Stellen Sie sich einen Status- oder Fehlercode vor. In diesem Fall bedeutet es Status: Ende der Datei.

1

-1 bedeutet einfach, dass nichts dort den Strom mehr zu lesen erlaubt zu stoppen, ist das Lesen vor dem Einsteigen ein IOException.

0

-1 ist, wenn das Ende der Datei erreicht wurde.

Verwandte Themen