我正在编码一个程序,该程序从输入文本文件中插入行。它应该是由换行符分隔的一行上的一组字符串。因此,我的输入文件如下所示:
0110\n011\n0111\n100001
但是,当我打印每行时,它作为一个完整的字符串出现,包括新的行字符-'0110 \ n011 \ n0111 \ n100001'
这是我的代码-当它是静态字符串时适用于Scanner,但当它来自文件时则无效。
File input = new File(input.txt);
Scanner scanner = new Scanner(input);
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
[当我更改扫描仪以读取String时,例如Scanner Scanner = String的新Scanner(s)=“ 0110 \ n011 \ n0111 \ n100001”,它可以正常工作并打印出4行,这意味着它可以识别\ n字符,例如:
String s = "0110\n011\n0111\n100001";
Scanner scanner = new Scanner(s);
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
唯一让我退缩的是我们必须用\ n分隔输入文件字符串。这是我们项目的要求。
知道为什么会这样吗?我的文本文件是否错误,是否可以通过\ n对其进行拆分?扫描程序读取文件中的行与仅读取静态字符串不同吗?我应该切换到BufferedReader吗?我无法解决这个问题。我通读了一些论坛和手册,但找不到任何东西。如果我可以做任何事情,或提供其他服务,请告诉我。
[\n
是换行符,当在字符串中解释为这样,但是在文件中,您只需要按Enter键,它将为您换行,扫描仪将正确读取所有内容。] >