【发布时间】:2010-04-15 21:47:41
【问题描述】:
我不是经验丰富的 Java 程序员,我正在尝试将一些文本写入文件,然后使用 Scanner 读取它。我知道有很多方法可以做到这一点,但我想用分隔符将记录写入文件,然后读取碎片。
问题是如此之小。当我查看输出时,看不到一些打印(如下所示)。我的意思是输出中的粗线仅写为“Scanner”。如果有人能回答为什么那里看不到“String:”,我将不胜感激。 (请按我的要求回答)
我不明白这是一个简单的打印问题还是“\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
【问题讨论】: