【问题标题】:Infile Outputting only 1 lineInfile 仅输出 1 行
【发布时间】:2014-05-07 09:20:16
【问题描述】:

我控制读取数据文件的外部循环不正确,有人可以向我解释如何让循环打印整个数据文件而不仅仅是数据文件中的第一个单词吗?

public static void display() throws IOException, FileNotFoundException {
    Scanner infile = new Scanner(new FileReader("G:\\DataFileDS.txt")); 
    StringTokenizer token = new StringTokenizer(infile.nextLine());
    StringElement str = new StringElement();

    while(token.hasMoreTokens()) {
        str.setString(token.nextToken());
        stringList.insert(str);
    }

    stringList.print();

    int n = stringList.listSize();
    for(int i = 0; i < n - 1; ++i) {
        System.out.println(stringList.retrieveAt(i) + " " + stringList.retrieveAt(i+1));
    }
} 

【问题讨论】:

    标签: java file file-io output


    【解决方案1】:

    我猜 while 循环首先运行,一旦完成,它就会打印该值。然后你的 for 循环只运行一次,因为 listsize 可能是一个。 尝试打印列表大小。由于我无法测试此代码。

    可能是这样的:

    public static void Display()throws IOException, FileNotFoundException
       {
          Scanner infile = new Scanner(new FileReader("G:\\DataFileDS.txt")); 
          StringTokenizer token = new StringTokenizer(infile.nextLine());
          StringElement str = new StringElement();
    
          while(token.hasMoreTokens())
          {
             str.setString(token.nextToken());
             stringList.insert(str);
             int n = stringList.listSize();
             for(int i=0; i<n-1; i=i+1)
             {
                System.out.println(stringList.retrieveAt(i) + " " + stringList.retrieveAt(i+1));
             }
              stringList.print();
          }
    
    
       } 
    

    【讨论】:

    • 肯定不止这些,虽然你的代码差异让它输出了3次,但是同名重复了3次。在我解构这部分并建立自己的方式之前还有其他建议吗?
    • listsize 打印什么?
    • 你找到什么了吗?
    • Link nt 找到了,你之前还有其他问题。请再次检查链接..否则我无法测试
    • @user3604953 你那里有几十个错误.. 你能调试一下,这样我就可以测试你具体要求的内容
    猜你喜欢
    • 1970-01-01
    • 2020-10-04
    • 1970-01-01
    • 2019-11-10
    • 1970-01-01
    • 2014-02-17
    • 1970-01-01
    • 1970-01-01
    • 2022-07-11
    相关资源
    最近更新 更多