Ich habe an einem Programm gearbeitet, das die Eingabe von Stdin in der Absicht betraf, immer die Eingabe aus einer Datei umgeleitet zu haben. Meine Methode, dies zu tun, war die Verwendung der Scannerklasse, um nach Zeile zu lesen und einen String -Operation durchzuführen. Ich verwende die Option für Konfigurationen> Common> Eingabedatei, um die Umleitung beim Ausführen des Programms zu automatisieren und die Ausgabe nur auf die Konsole auszudrucken. < /p>
Ich finde, dass der Code jedes Mal, wenn ich das Programm ausführe z (Windows). Ich ging zurück und eröffnete einige alte Projekte und bemerkte den gleichen Trend und bin zuversichtlich, dass sie dieses Problem vorher nicht hatten und den Code nicht geändert haben. Unten finden Sie ein Code -Beispiel: < /p>
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s;
String everything = "";
while(sc.hasNextLine()){
s = sc.nextLine();
everything.concat(s);
System.out.println(s);
}
System.out.println(everything);
sc.close();
}}
< /code>
Es scheint, als würde HasNextline () blockieren, da es auf Eingaben wartet, aber wenn ich beendet, druckt sie die endgültige Zeile der Datei und druckt nie "Alles". p>
Beispieleingabedatei IM verwendet aussieht wie: < /p>
1
2
3
4
< /code>
Das Programm druckt 1, 2, 3 in separaten Zeilen aus, druckt jedoch nicht 4, bis ich EOF signalisiert. Mein Verständnis von HasNextline () ist, dass es bei der Umleitung EOF erkennen und aufhören sollte zu blockieren. Umleitung einer Datei. HasNextLine () sollte die Dateiumleitung nicht blockieren, da die Datei eof signalisieren sollte. Das Problem scheint mit Eclipse verbunden zu sein.
Eclipse hängt an der Umleitung von Scannerdateien (Java) ⇐ Java
-
- Similar Topics
- Replies
- Views
- Last post