您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

GZIPInputStream逐行读取

GZIPInputStream逐行读取

装饰器的基本设置如下:

InputStream fileStream = new FileInputStream(filename);
InputStream gzipStream = new GZIPInputStream(fileStream);
Reader decoder = new InputStreamReader(gzipStream, encoding);
BufferedReader buffered = new BufferedReader(decoder);

代码段中的关键问题是的值encoding。这是文件中文本的字符编码。是“ US-ASCII”,“ UTF-8”,“ SHIFT-JIS”,“ ISO-8859-9”等吗?有数百种可能性,通常无法从文件本身确定正确的选择。必须通过一些带外通道来指定。

例如,也许这是平台认值。但是,在网络环境中,这非常脆弱。写入文件的计算机可能位于相邻的小隔间中,但是具有不同的文件编码。

大多数网络协议使用标头或其他元数据来显式记录字符编码。

在这种情况下,从文件扩展名看来,内容是XML。为此,XML在XML声明中包含“ encoding”属性。此外,应该真正使用XML解析器而不是文本来处理XML。逐行读取XML似乎是一种脆弱的特殊情况。

未能明确指定编码违反第二条诫命。 使用认编码会带来麻烦!

其他 2022/1/1 18:15:24 有427人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶