Java扫描程序可以正确读取\ n的字符串,但是在扫描文件时却不能读取?

问题描述 投票:-1回答:1

我正在编码一个程序,该程序从输入文本文件中插入行。它应该是由换行符分隔的一行上的一组字符串。因此,我的输入文件如下所示:

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吗?我无法解决这个问题。我通读了一些论坛和手册,但找不到任何东西。如果我可以做任何事情,或提供其他服务,请告诉我。

java string java.util.scanner newline
1个回答
0
投票

[\n是换行符,当在字符串中解释为这样,但是在文件中,您只需要按Enter键,它将为您换行,扫描仪将正确读取所有内容。] >

© www.soinside.com 2019 - 2024. All rights reserved.