【问题标题】:Java File - can you use readUTF to read a string from a text file?Java File - 您可以使用 readUTF 从文本文件中读取字符串吗?
【发布时间】:2018-09-17 15:47:55
【问题描述】:

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

【问题讨论】:

    标签: java file io binary


    【解决方案1】:

    如果文件是使用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() 编写的,则它不是文本文件。
    • @EJP 我不同意;文本文件是一个广义的术语,不限于纯文本。
    【解决方案2】:

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

    答案:没有。

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

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

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

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


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

    【讨论】:

      猜你喜欢
      • 2016-07-14
      • 2015-05-09
      • 2010-12-15
      • 1970-01-01
      • 2017-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-25
      相关资源
      最近更新 更多