繁体   English   中英

使用两行文本的StringTokenizer出现问题

[英]Trouble with StringTokenizer using two lines of text

我有一个程序,该程序应该获取运行参数中指定的文本文件,并一次在单独的行上打印一个单词。 除破折号(-)和撇号(')外,应该省略任何特殊字符。

我基本上已经完成了该程序,只是我只能使它打印文件中的第一行文本。

这是文本文件中的内容:

这是输入文件的第一行。 它有多条线!

这是我正在使用的运行参数:

Java A1 A1.txt

这是我的代码:

import java.io.*;
import java.util.*;

public class A1
{
   public static void main (String [] args) throws IOException
   {
      if (args.length > 0)
      {
      String file = (args[2]);

         try
         {
            FileReader fr = new FileReader (file);
            BufferedReader br = new BufferedReader(fr);
            String s = br.readLine();
            int i = 1;
            StringTokenizer st = new StringTokenizer(s);
            while (st.hasMoreTokens())
            {
            System.out.println(st.nextToken());

            }
               br.close();
            } catch (IOException e)
            {
               System.out.println ("The following error occurred " + e);
            }
         }
      }
   }

您只调用一次readLine() 因此,您仅在输入文件的第一行中进行读取和解析。 然后程序结束。

您想要做的是将其放入while循环中,并读取文件的每一行,直到到达末尾为止,如下所示:

while((s = br.readLine()) != null) {
    StringTokenizer st = new StringTokenizer(s);
    while (st.hasMoreTokens()) {
        System.out.println(st.nextToken());
    }
}

基本上,这意味着“当有下一行需要阅读时,请对该行执行以下操作”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM