【发布时间】:2018-09-17 15:47:55
【问题描述】:
Java 文件 - 你可以使用 readUTF 从文本文件中读取字符串吗?
【问题讨论】:
Java 文件 - 你可以使用 readUTF 从文本文件中读取字符串吗?
【问题讨论】:
如果文件是使用writeUTF 写入的,则可以。 writeUTF首先写入short(表示即将写入的String的长度),然后写入实际的String。只要您的文件采用这种格式,它就可以完美运行。
如果您想知道如何使用它,请阅读DataInputStream#readUTF 的文档以进行阅读和DataOutputStream#writeUTF 以进行写作。
示例(在 Java 10 中):
try (var stream = new DataInputStream(Files.newInputStream(Paths.get("file.txt")))) {
var text = stream.readUTF();
}
【讨论】:
writeUTF() 编写的,则它不是文本文件。
您可以使用 readUTF 从文本文件中读取字符串吗?
答案:没有。
文本文件包含(根据定义1)人类可读的文本。
readUTF 方法读取已编码为字符串长度的 2 字节非文本表示,后跟 UTF-8 编码字符的字符串。如果格式(在文件中)与上述不匹配,您可能会得到无效的字符串或异常。
您不会在纯文本文件中找到这样的字符串表示形式。字符串长度将在文本文件中显示为几个“垃圾”字符。
readUTF 方法用于读取由相应的writeUTF 方法写入的字符串。
1 - 如果您(OP)不同意这个定义,那么请在这个问题的上下文中准确解释“文本文件”的含义。
【讨论】: