使用StringTokenizer在java中读取多行

使用StringTokenizer在java中读取多行,java,string,stringtokenizer,Java,String,Stringtokenizer,我试图在Java中读取txt文件的多行,但我不知道如何让它读取下一行。我尝试了一个while循环,当我运行我的程序时,什么都没有出来。我所做的只是打了一会儿电话!=空{因此它可以读取下一行,但我没有运气让它完成任务 这是文本文件的读取方式 您也可以在while循环中进行行读取。下面是一个相当典型的实现,它在eof之前读取文件的每一行。我不确定while循环的实现为什么不起作用,因此发布代码会有所帮助 while ((line = reader.readLine()) != null) {

我试图在Java中读取txt文件的多行,但我不知道如何让它读取下一行。我尝试了一个while循环,当我运行我的程序时,什么都没有出来。我所做的只是打了一会儿电话!=空{因此它可以读取下一行,但我没有运气让它完成任务

这是文本文件的读取方式


您也可以在while循环中进行行读取。下面是一个相当典型的实现,它在eof之前读取文件的每一行。我不确定while循环的实现为什么不起作用,因此发布代码会有所帮助

while ((line = reader.readLine()) != null)
{
    myTokens = new StringTokenizer(line, ",");

    list = new String[myTokens.countTokens()];

    int i = 0;

    while (myTokens.hasMoreTokens())
    {
        list[i] = myTokens.nextToken();
        i++;
    }
}

我支持使用拆分的概念。

什么是TextFileInput?你可以看到:我仍然只让它打印出第一行。我有一个问题。当我尝试在while循环外打印数组时,我只得到第一行,当我在while循环内打印它时,我让每一行按照我想要的方式分开。数组是否没有是否保留值?我需要数组稍后删除任何不是8位的内容,然后对这些有效日期进行排序。很抱歉打扰您。@user3371154请将新问题作为单独的问题发布。这种做法使查找预先存在的解决方案更加容易。请确保发布用于打印ar的代码雷,因为你打印它的方式几乎可以肯定是手头的问题。它是相同的代码,但我要提出一个新问题。我不希望如果我对同一个程序提出另一个问题,它会被视为垃圾邮件。
import java.util.*;

public class Tokens1 {
  public static TextFileInput myFile;
  public static StringTokenizer myTokens;
  public static String[] list;
  public static String line;


  public static void main(String[] args) {
    myFile = new TextFileInput("project1.txt");
    line = myFile.readLine();
    myTokens = new StringTokenizer(line, ",");

    list = new String[myTokens.countTokens()];

    int i = 0;
    while (myTokens.hasMoreTokens()) {
      list[i] = myTokens.nextToken();
      i++;
    }

    for (int j = 0; j < list.length; j++)
      System.out.println(list[j]);
  }

}
while ((line = reader.readLine()) != null)
{
    myTokens = new StringTokenizer(line, ",");

    list = new String[myTokens.countTokens()];

    int i = 0;

    while (myTokens.hasMoreTokens())
    {
        list[i] = myTokens.nextToken();
        i++;
    }
}