【发布时间】:2010-09-06 20:25:35
【问题描述】:
Javadoc 表示:
只写入整数 oneChar 的低两个字节。
这对编写已转换为 int 的非 utf8 编码字符有什么影响(如果有的话)?
更新:
相关代码从套接字接收数据并将其写入文件。 (接收和写入之间会发生很多事情,所以我不能只使用通过 BufferedReader#readLine() 获得的字符串)。我使用的是 Writer#write(char[]) 但这意味着我每次都必须创建一个新的 char 数组。为了避免每次都创建一个数组,我有一个用 -1 填充的 char 数组(强制转换为 char)。
然后我使用TextUtils#getChars 来填充它,并在必要时扩展数组。对于写入,我循环遍历数组,写入 Writer 直到 char[i] == (char) -1 == true。
【问题讨论】:
-
我不明白你的更新。 TextUtils#getChars 从 CharacterSequence 获取输入。为什么不直接使用 Writer#append(CharSequence) 编写 CharacterSequence?
-
通常的方法是使用 Reader#readLine() 读取,然后使用 Writer.append 写入。如果由于代码的工作方式而无法执行此操作,则需要针对您的问题发布一个独立的代码示例。否则就不可能了解您的限制并找到不同的解决方案。
-
Writer#append(charsequence) 在写入之前使用 toString,我不想每次都创建一个新字符串。在 readline() 和写入文件之间,解析器用于解析字符串、添加格式并对字符串执行各种操作。写入仅发生在由应用程序状态和消息类型确定的某些情况下,因此必须在解析器内部进行。我的问题很简单,我可以从 iso-8859-1 编码字符串中获取字符,并将它们转换为 int 而不会丢失任何数据。
标签: android encoding character-encoding bufferedwriter