Infile仅输出1行

时间:2014-05-07 09:20:17

标签: java file file-io output

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

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));
    }
} 

1 个答案:

答案 0 :(得分:0)

我想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();
      }


   }