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