在从文件中读取行时,java程序在某些情况下将一行读入两行不同的行

时间:2015-05-25 18:25:38

标签: java file readline tweets

我需要阅读大量文本文件来开发我的项目。每个文件都包含一个人的推文和转推。我写了简单的java代码来做到这一点。我还尝试使用c代码读取文件。它也显示出相同的问题程序可以正确地读取一些行,但在某些情况下,它会破坏行并将1行单行读入两行。在某些地方,程序也在输入新行。

我需要按原样阅读文件。请您告诉我,是由于文件的输入还是由于某些其他原因。有什么解决方案吗? 感谢

下面是我的代码,非常简单。

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行

1 个答案:

答案 0 :(得分:1)

您的数据不符合您的想法:

您的文件连续有多个行分隔符。这就是空白行的来源。

\n\n将计为空行,Windows可能为\n\r\n\r

在您TextPad\n \n\r之类的内容中,行标记不可见,您认为它们不是,就是这么简单。

Garbage In,Garbage Out

Code is correct, data is wrong.

同样Scanner是错误的选择,BufferedReader将是更好的解决方案。