Java Scanner.nextLine()只需要半行

Java Scanner.nextLine()只需要半行,java,java.util.scanner,Java,Java.util.scanner,我有带数据的文件。看起来像这样 下面的片段只是文件的一部分(1.片段行约为文件中的40000.行) 然后在Java中,我试图对每一行文件做一些事情 File file = new File("resources/file.txt"); Scanner sc = null; try { sc = new Scanner(file); while (sc.hasNextLine()) { String line = sc

我有带数据的文件。看起来像这样

下面的片段只是文件的一部分(1.片段行约为文件中的40000.行)

然后在Java中,我试图对每一行文件做一些事情

    File file = new File("resources/file.txt");
    Scanner sc = null;
    try {
        sc = new Scanner(file);
        while (sc.hasNextLine()) {
            String line = sc.nextLine();
            String[] array = line.split(",");

            (something with input)
        }
Scanner.nextLine()方法有问题。当我加载整个文件时,对于几行,扫描仪没有获取整行,例如(这是错误之前的行变量状态)


但当我用这4行创建一个新文件,然后加载新创建的文件时,一切都会顺利进行。我有一堆类似的文件(相同的结构,250k行),它们也没有问题。此文件可能有什么问题?

它可能有一个编辑器没有显示的换行符(\r或\n)。但为什么我复制这一行(以及前后的几行)时,扫描仪会占用整行,而不是从更大的文件中复制?复制和粘贴时,您的编辑器可能会删除此换行符。我们不能在没有看到文件的情况下说任何事情。不相关(可能),但不要使用
扫描仪进行行读取。它非常慢。改用
BufferedReader
。或者更好的是,使用实际的CSV解析器,因为您正在阅读。例如,它的可能副本可能有一个编辑器没有显示的换行符(\r或\n)。但为什么我复制这一行(以及前后的几行)时,扫描仪会获取整行,而不是从更大的文件中复制?可能编辑器在复制和粘贴时会删除此换行符。我们不能在没有看到文件的情况下说任何事情。不相关(可能),但不要使用
扫描仪进行行读取。它非常慢。改用
BufferedReader
。或者更好的是,使用实际的CSV解析器,因为您正在阅读。例如,可能的副本
    File file = new File("resources/file.txt");
    Scanner sc = null;
    try {
        sc = new Scanner(file);
        while (sc.hasNextLine()) {
            String line = sc.nextLine();
            String[] array = line.split(",");

            (something with input)
        }
mk,adzemka,Adzemka,10