我需要阅读大量的文本文件来开发我的项目。每个文件都包含一个人的推文和转发。为此,我编写了简单的java代码。我还尝试使用c代码读取文件。它也显示了同样的问题,程序可以正确地读取一些行,但在某些情况下,它会断行并将一行读取为两行。在某些地方,程序也在输入新行。
我需要按原样读取文件。请告诉我,是文件输入的原因,还是其他原因?有解决办法吗?由于
下面是我的代码,这是非常简单的。public class Check {
public static void main(String[] args) throws FileNotFoundException, IOException {
File InfileName = new File ("c:/users/syeda/desktop/12.txt");
Scanner in = new Scanner(new FileReader(InfileName));
String line="";
int lineNo=0;
while(in.hasNext()== true)
{
line = in.nextLine();
System.out.println(line);
lineNo++;
}
System.out.println(lineNo);
}
}
我的输入文件只包含800行,但是它显示了819行作为输出。额外的19行是一些空白行,它们不在输入文件中,输入文件中的一些行被分成两行,显示额外的19行
你的数据不是你想的那样:
您的文件在行中有多个行分隔符。这就是空行的来源。
nn
将被视为空行,Windows可能是nrnr
。
行尾标记在TextPad
中是看不见的,你有n
或nr
,你不认为它们是,就是这么简单。
垃圾输入,垃圾输出
代码正确,数据错误。
Scanner
也是一个错误的选择,BufferedReader
将是一个更好的解决方案。