私は経験豊富なJavaプログラマーではなく、ファイルにテキストを書き込んでからスキャナーで読み取ろうとしています。これを行う方法はたくさんあることは知っていますが、区切り文字を使用してファイルにレコードを書き込んでから、その部分を読み取りたいと思います。
問題はとても小さいです。出力を見ると、印刷が見られません(以下に表示)。「スキャナー」とだけ書かれている出力の太線を意味します。なぜ「文字列: 」が表示されないのか、誰か答えていただければ幸いです。(私が尋ねたことだけに答えてください)
単純な印刷の問題なのか、「\ r\n」の行末の問題なのか理解できませんでした。
コードは次のとおりです。
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();
}
}
出力は次のとおりです。
String: Testing
int: 10
boolean: true
String: two
String: false
Scanner
int: 12
String: one
boolean: true