java - Android 上字符的大小

标签 java android char primitive-types

根据Java规范,一个char的大小数据类型为 16 位或两个字节。

所以,我编写了如下代码:

private static final int BUFFER_SIZE=1024;
char[] buffer=new char[BUFFER_SIZE];
BufferedReader br= new BufferedReader(new InputStreamReader(conn.getInputStream()));

while (true){
    byteFromStream=in.read(buffer);
    if (byteFromStream==-1) break;
    totalBytesLoaded=totalBytesLoaded+byteFromStream*2;
}

但由于某些奇怪的原因,根据 read() 的规范,我读取的字节数超过流中可用的字节数返回流实际读取的字符数。

哦,我正在获取总流大小

bytesTotal=conn.getContentLength();

这工作得很好,因为我自己在服务器上上传了文件并且我知道它们的大小。

最佳答案

该方法返回读取字符的数量。该值不需要乘以 2,尤其是因为您无法对流中字符的字节大小做出一般假设。

每个字符的字节数取决于字符编码(例如可以是 1 个字节)。阅读器组件知道这一点,并且只会告诉您已阅读字符的数量。

关于java - Android 上字符的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11514108/

相关文章:

android - 如果缓存了密码,则避免在启动时进行登录 Activity

android - 保存 fragment 状态操作栏选项卡

java - 如何在不使用 Java 中的 Replace() 的情况下替换字符串中的字符?

c - 在 C 中 append 一个带空终止符的字符

java - 在android中隐藏按钮上的文字?

java - 如何使用 ant 从命令行构建应用程序?

java - 为什么将 Mockito 从 1.9.5 升级到 1.10.8 会破坏这个 Captor?

用于replaceAll的Java正则表达式

java - 将插件添加到 gradle 后不支持major.minor版本

java - 有没有一种简单的方法可以将一个字节附加到 StringBuffer 并指定编码?