DataInputStream的readUTF()方法能够从输入流中读取采用UTF—8字符编码的字符串

2025-01-01 10:54:23
推荐回答(4个)
回答1:

借鉴一下别人观点:

DataInputStream的readUTF方法

读入一个已使用 UTF-8 修改版格式编码的字符串。readUTF 的常规协定是:该方法读取使用 UTF-8 修改版格式编码的 Unicode 字符串的表示形式;然后以 String 的形式返回此字符串。
首先读取两个字节,并使用它们构造一个无符号 16 位整数,构造方式与 readUnsignedShort 方法的方式完全相同。该整数值被称为 UTF 长度,它指定要读取的额外字节数。然后成组地将这些字节转换为字符。每组的长度根据该组第一个字节的值计算。紧跟在某个组后面的字节(如果有)是下一组的第一个字节.

如有疑问 :请参阅 http://zhidao.baidu.com/question/175398066.html

回答2:

eadUTF()和读取一个UTF-8编码的文件不是一个概念。
你翻翻源码就会发行,readUTF()是从流里面读一个指定长度的UTF-8编码的字符串,长度保存在流的开头2个字节。
readUTF()通常和DataOutputStream的 writeUTF(String str)方法配套使用。

回答3:

是的可以
也可以这样
File file = new File(filePath);
OutputStream out = new FileOutputStream(file);
OutputStreamWriter outWriter = new OutputStreamWriter(out,“utf-8”);
writer = new BufferedWriter(outWriter);

回答4:

返回的是Unicode
包含如下

UTF-8、UTF-16、UTF-32等统一国际编码