当前位置: 首页 > 知识库问答 >
问题:

找不到行?读取文件错误?

龙骏
2023-03-14

我收到一个No Line find错误,这个读取while循环。即使我用input.nextLine()打印所有内容,它也会显示count tt==0。这意味着,while循环甚至不工作?

public class ReaderFile {
    public static Scanner input;

尝试捕获输入。

try{
            input = new Scanner(new File(fileLocation)).useDelimiter(",");
        }
        catch (IOException ioException)
        {
            System.out.print("PROBLEM");
        }

这是我有问题的代码。

int countt = 0;
        input.nextLine();
        while(input.hasNext())
               {
                      System.out.print("TEAMSTart\n");
                      int ID = input.nextInt();
                      String teamName = input.next();
                      String coachFirst = input.next();
                      String coachLast = input.next();
                      String mentorFirst = input.next();
                      String mentorLast = input.next();
                      String teamFs = input.next();
                      String teamSS = input.next();
                      input.nextLine();
                      Team team = new Team (teamName, ID, coachFirst, coachLast,mentorFirst,mentorLast,teamFs,teamSS);
                      store.add(team);
                      System.out.print(ID);
                      countt = countt+1;
                      //System.out.print("\n"+countt);
                }

这是我正在阅读的文本文件

TeamNumber,Team Name,Coach First,Coach Last,Mentor First,Mentor Last,Team Fin Sponsor,Schools or Sponsoring Organization,TmMem1First,TmMem1Last,TmMem2First,TmMem2Last,TmMem3First,TmMem3Last,TmMem4First,TmMem4Last,TmMem5First,TmMem5Last,TmMem6First,TmMem6Last,TmMem7First,TmMem7Last,TmMem8First,TmMem8Last
6842,Reagan Ray-Guns,Judy,Mallon,Aziz,Valdez,Texas Workforce Commission,REAGAN H S,Steven,Cepeda,Alan,Yue,Tim,Callaway,Damon,Bertucci,Samuel,de Olvieira,Samuel,Day,,,,
6888,Islanders,Judy,Maldonado,Brady,Trevino,Three Rivers Robotics,THREE RIVERS MIDDLE,Shireen,Cowdrey,Dee,Roundtree,Steven,Callaway,Francisco,Bermea,,,,,,,,
7004,GREENHILL Tops,Kanat,LaBass,Harvey,Pflueger,GREENHILL Boosters,GREENHILL SCHOOL,Harvey,Pflueger,Sandra,Day,Denny,Rodriguez,shirley,Couvillon,Carly,Szarka,,,,,,

共有2个答案

吴城
2023-03-14
import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class Reader {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner input = null;
        try {
            input = new Scanner(new File("C:/Mohan_Backup/DDR/input.txt"))
                    .useDelimiter(",");
        } catch (IOException ioException) {
            System.out.print("PROBLEM");
        }

        int countt = 0;
        System.out.println(input.nextLine());
        while (input.hasNext()) {
            System.out.print("\nTEAMSTart: ");
            int ID = input.nextInt();
            String teamName = input.next();
            String coachFirst = input.next();
            String coachLast = input.next();
            String mentorFirst = input.next();
            String mentorLast = input.next();
            String teamFs = input.next();
            String teamSS = input.next();
            input.nextLine();
            // Team team = new Team (teamName, ID, coachFirst,
            // coachLast,mentorFirst,mentorLast,teamFs,teamSS);
            // store.add(team);
            System.out.print(ID);
            countt = countt + 1;
            // System.out.print("\n"+countt);
        }
    }

}

This code works  and shows the below output
TeamNumber,Team Name,Coach First,Coach Last,Mentor First,Mentor Last,Team Fin Sponsor,Schools or Sponsoring Organization,TmMem1First,TmMem1Last,TmMem2First,TmMem2Last,TmMem3First,TmMem3Last,TmMem4First,TmMem4Last,TmMem5First,TmMem5Last,TmMem6First,TmMem6Last,TmMem7First,TmMem7Last,TmMem8First,TmMem8Last

TEAMSTart: 6842
TEAMSTart: 6888
TEAMSTart: 7004

我已经评论了35,36,37行,因为我没有相同的来源。

於意蕴
2023-03-14

首先,我建议您使用try with resources语句,当您遇到Exception

try (Scanner input = new Scanner(new File(fileLocation))) {

} catch (IOException ioException) {
    ioException.printStackTrace();
}

我会逐行阅读。请记住,您应该在尝试阅读之前调用hasNext

while (input.hasNextLine()) {
    int col = 0;
    String line = input.nextLine();
    String[] arr = line.split(",");
    System.out.print("TEAMSTart\n");
    int ID = Integer.parseInt(arr[col++]);
    String teamName = arr[col++];
    String coachFirst = arr[col++];
    String coachLast = arr[col++];
    String mentorFirst = arr[col++];
    String mentorLast = arr[col++];
    String teamFs = arr[col++];
    String teamSS = arr[col];
    store.add(new Team(teamName, ID, coachFirst, coachLast,
            mentorFirst, mentorLast, teamFs, teamSS));
    System.out.println(ID);
}

您的文件似乎是以标题开始的...您可以添加一个

if (input.hasNextLine()) {
    String hdr = input.nextLine();
}

在上面的while循环之前跳过它。

 类似资料:
  • 我试图从一个名为poll.txt的文件中获取数据集,然后使用相关数据。 poll.txt内容: 源代码,选举票.java: 但是,当我运行程序时,在给出异常之前,只使用了其中一行: 我试着在“scanner.nextLine();”语句中移动,但没有用。如果我不要求nextLine,这个程序运行良好,但我显然需要它,而且我似乎不知道出了什么问题。

  • 问题内容: 我提出了一个错误: 我想在网上阅读HTML文件 问题答案: 您的URI不是URI。没有协议组件。它需要http://或您打算使用的其他协议。

  • 我只使用最新的独立空手道jar在配置了JRE的docker容器上测试我的API,我没有任何Java代码。 目前在我的一个功能中,我有这样一个:,当资源文件与功能文件位于同一目录时,它可以正常工作。我知道建议这样做。 但是,如果我还希望有一个包含所有资源文件的中心目录以避免重复,那么即使使用以下命令,它也不起作用: 错误如下: msgstr"[com.intuit.karate.exception.

  • 现在,我只是尝试读取与Java类存储在同一目录中的文件内容,并访问其长度。但是,每当传递正确的文件名以创建新的对象时,其长度返回为零。我假设这是因为由于某种原因找不到该文件。 我的文件结构如下: 我尝试用,其中等于。

  • 问题内容: 我正在使用Java在Linux EXTREME VPS上存储图像 当我将其存储在服务器路径上时 使用以下代码读取路径 当我使用上面的代码阅读时,我得到以下异常 如何解决这个问题呢? 还有其他从Linux服务器读取文件的方法吗? 问题答案: 我认为问题在于您使用的文件路径错误。 您说您正在Linux服务器上读取文件,似乎您正在尝试在Windows计算机上读取文件。由此推断,您已将Linu

  • 问题内容: 我在PHP文档中看到的最接近的是fread()给定的长度,但这没有指定从哪一行开始。还有其他建议吗? 问题答案: 您将无法从X行开始读取,因为行可以是任意长度。因此,您必须从头开始阅读,以计数要读取的行数才能到达X行。例如: