栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

读/写带字符串的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位的。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/431189.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号