使用两行文本解决StringTokenizer问题

时间:2016-10-13 22:07:24

标签: java stringtokenizer

我有一个程序应该采用run参数中指定的文本文件,并在不同的行上一次打印一个单词。除了破折号( - )和撇号(')之外,它应该省略任何特殊字符。

我基本完成了程序,只是我只能打印文件的第一行文字。

以下是文本文件中的内容:

这是输入文件的第一行。它有 不止一行!

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

java A1 A1.txt

这是我的代码:

// Client code for reading individual messages from a TCP connection

byte type = din.readByte();

// Read the message length, little-endian.
// We cannot use din.readShort because it's big-endian
int lenLo = din.read();
int lenHi = din.read();
short len = (short)(lenLo | (lenHi << 8));
byte [] body = new byte[len];
din.readFully(body);

1 个答案:

答案 0 :(得分:1)

您只需拨打readLine()一次!所以你只是通过输入文件的第一行读取和解析。然后程序结束。

你想要做的是把它扔进一个while循环并读取文件的每一行,直到你到达终点,如下:

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

基本上,这意味着“,而下一行要读取,请使用该行执行以下操作”。