读写带字符串的BINARY文件?

读写带字符串的BINARY文件?,第1张

读/写带字符串的BINARY文件?

暂时忘掉FileWriter,DataOutputStream。

  • 对于二进制数据,使用
    OutputStream
    InputStream
    分类。他们处理
    byte[]
  • 对于文本数据,使用
    Reader
    Writer
    分类。他们处理
    String
    可以存储所有类型的文本,因为它内部使用Unipre。

通过指定默认为OS编码的编码,可以完成从文本到二进制数据的转换

  • new OutputStreamWriter(outputStream, encoding)
  • string.getBytes(encoding)

因此,如果要避免

byte[]
使用String,则必须滥用一种编码,该编码以任何顺序覆盖所有256个字节的值。因此,没有“ UTF-8”,而是“
windows-1252”(也称为“ Cp1252”)。

但是内部会发生转换,在极少数情况下可能会发生问题。例如

é
,在Unipre中可以是一个代码,也可以是两个代码
e
+结合变音符号right-accent
'
。为此存在一个转换函数(java.text.Normalizer)。

已经导致问题的一种情况是不同 *** 作系统中的文件名。MacOS具有Windows之外的另一种Unipre规范化,因此在版本控制系统中需要特别注意。

因此,原则上最好使用较麻烦的字节数组或ByteArrayInputStream或java.nio缓冲区。还要注意String

char
是16位的。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5105042.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存