Wie zu beheben Zeilenende Lesen mit dem Scanner-Klasse in Java

Ich bin nicht ein erfahrener Java-Programmierer und ich bin versucht zu schreiben einen text in eine Datei schreiben und dann Lesen Sie es mit Scanner. Ich weiß, es gibt viele Möglichkeiten, dies zu tun, aber ich will schreiben-Datensätze einer Datei mit Trennzeichen, dann Lesen Sie die Stücke.

Das problem ist so klein. Wenn ich mir die Ausgabe einigen drucken nicht gesehen(siehe unten). Ich meine die Fett dargestellte Zeile in der Ausgabe, wird nur geschrieben "Scanner". Ich wäre dankbar, wenn jemand beantworten kann, warum "String: " nicht gesehen. (Bitte beantworten Sie nur, was ich Fragen)

Konnte ich nicht verstehen, wenn es ein einfacher Druck-problem oder ein Zeilenende-problem mit "\r\n".

Hier ist der code:


    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.Scanner;

public class Tmp {
    public static void main(String args[]) throws IOException {
        int i;
        boolean b;
        String str;

        FileWriter fout = new FileWriter("test.txt");
        fout.write("Testing|10|true|two|false\r\n");
        fout.write("Scanner|12|one|true|");
        fout.close();

        FileReader fin = new FileReader("Test.txt");

        Scanner src = new Scanner(fin).useDelimiter("[|\\*]");

        while (src.hasNext()) {
            if (src.hasNextInt()) {
                i = src.nextInt();
                System.out.println("int: " + i);
            } else if (src.hasNextBoolean()) {
                b = src.nextBoolean();
                System.out.println("boolean: " + b);
            } else {
                str = src.next();
                System.out.println("String: " + str);
            }
        }

        fin.close();
    }
}   


Hier ist die Ausgabe:


String: Testing
int: 10
boolean: true
String: two
String: false
Scanner
int: 12
String: one
boolean: true

InformationsquelleAutor user303520 | 2010-04-15
Schreibe einen Kommentar