Java 仅从文件中读取一个令牌

Java 仅从文件中读取一个令牌,java,Java,谢谢大家的帮助。 我需要做的是: **打开一个文件进行读取** **读取文件中的第一个令牌[String]** **报告下一个读取光标位置** **归还代币** **关闭文件** **重新打开文件** **从文件中读取*second*标记** 以此类推,直到所有必要的数据都被读取。 我是java新手,但是C++中的TELG或TELP用来提取光标位置和GETLIN,用于从文件中读取一个令牌。 我希望这个解释能更好地解释我的问题 在编写了一个将带有分隔符的数据输出到UTF文件的方法之后,我现在尝试从

谢谢大家的帮助。 我需要做的是:

**打开一个文件进行读取**

**读取文件中的第一个令牌[String]**

**报告下一个读取光标位置**

**归还代币**

**关闭文件**

**重新打开文件**

**从文件中读取*second*标记**

以此类推,直到所有必要的数据都被读取。 我是java新手,但是C++中的TELG或TELP用来提取光标位置和GETLIN,用于从文件中读取一个令牌。 我希望这个解释能更好地解释我的问题

在编写了一个将带有分隔符的数据输出到UTF文件的方法之后,我现在尝试从UTF文件中提取数据。数据提取的方式是一次提取一个标记,正如我前面所说的,这些标记有一个分隔符,Java所要做的就是读取文件的标记,直到找到分隔符为止。 以下是writer方法的代码:

public void writeData(String data) throws IOException {
    try {
        dout.writeUTF(data);
        dout.writeBytes("^");
    } catch(IOException e) {
        throw e;
    }
}
以下是读者:

public void readData() throws IllegalStateException {
    try {
        apstr = new StringBuilder();
        while(scan.hasNext()) {
            apstr.delete(0,apstr.length());
            apstr.append(scan.next());
            System.out.println("The token is: " + apstr);
        }
    } catch(IllegalStateException e) {
        scan.close();
        throw e;
    }
    scan.close();
}
该文件包含以下数据: Java^C++^PHP^ 输出为: Java^C++^PHP^ 但我想读的只是Java这个词

如何让Java做同样的事情

顺便问一下,我该如何发布新问题?此网页上没有显示“发布新问题”的按钮。提前感谢。

使用

它包含一个构造函数
StringTokenizer(String str,String delim)
——其中分隔符将是克拉(“^”)字符,以及一个
nextToken()
函数以字符串形式返回下一个标记


此外,这还演示了将文件读入
字符串的各种选项。您应该使用编写器写入文件。如果要使用utf-8编码,请执行以下操作

PrintWriter pw=新的PrintWriter(新的OutputStreamWriter(新的FileOutputStream(“somepath”),StandardCharsets.UTF_8))

那就做吧

println(“一些文本”)


将DataOutputStream用于您将使用扫描仪读取的内容是行不通的。

那么扫描仪正在从文件中读取?那么你就不想使用writeUTF了。writeUTF并不像你想象的那样编码。使用书写器并指定UTF-8编码。顺便说一句,您不可能发布准确的代码。打印行与您声称的输出不匹配。:)
StringTokenizer
是一个遗留类,要标记字符串,应该使用
string#split()谢谢大家的帮助。