Java文件 - 您可以使用readUTF从文本文件中读取字符串吗?

时间:2018-04-07 22:47:44

标签: java file io binary

Java文件 - 您可以使用readUTF从文本文件中读取字符串吗?

2 个答案:

答案 0 :(得分:1)

  

您可以使用readUTF从文本文件中读取字符串吗?

答案:不。

文本文件包含(根据定义 1 )只是人类可读的文本。

readUTF方法读取一个字符串,该字符串已被编码为字符串长度的2字节非文本表示,后跟UTF-8编码字符。如果格式(在文件中)与上述格式不符,则您可能会收到无效字符串或异常。

在纯文本文件中,您将找不到类似的字符串表示形式。字符串长度将在文本文件中显示为几个“垃圾”字符。

readUTF方法用于读取由相应的writeUTF方法编写的字符串。

1 - 如果您(OP)不同意此定义,请在此问题的上下文中准确解释“文本文件”的含义。

答案 1 :(得分:0)

如果使用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();
}