[英]Error whilst using StringTokenizer on text file with multiple lines
[英]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.