从文件中读取数据并将其分解为令牌

时间:2014-12-08 21:18:26

标签: java token stringtokenizer

我从文本文件中读取后使用以下代码将文本文件的输入分解为标记:

String input;
while(true)
{
    input = bin.readLine(); 
    if (input == null) 
    {
        System.out.println( "No data found in the file");
        return 0;
    }
    break;
}

StringTokenizer tokenizer = new StringTokenizer(input);

然后:

for (int i=0; i < numAtt; i++) 
{
    attributeN[i]  = tokenizer.nextToken();
}

我无法理解为什么attributeNames只获取文本文件第一行中的标记,而不是while(true)继续读取整个文件?还有一种方法可以避免while(true)和使用break来终止它吗?

3 个答案:

答案 0 :(得分:1)

break if (input == null) { }之后while ((input = bin.readLine()) != null) { //split input line here } 打破了一段时间,因此您的代码只读了一行。

  

还有一种方法可以避免while(true)和使用break   终止它?

以这种方式做到:

,

另外,请考虑使用String#split()分割标记中的行。分隔符String attributeNames[] = input.split(","); 的示例:

{{1}}

答案 1 :(得分:0)

最好的方法是使用:

 String splittedString[] = input.split("the separator");

Oracle推荐。

答案 2 :(得分:0)

您是否只是想从第一行获取令牌?如果是这样,您根本不需要while循环。只需从开头删除while {,然后从结尾删除break; }