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

如何在不使用Java进行任何缓冲的情况下读取文件?

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

如何在不使用Java进行任何缓冲的情况下读取文件?

问题之一涉及编写仅使用大约1兆字节内存的程序来将文件内容存储为位数组,每个位代表文件中是否存在7位数字。

这意味着您需要以字节(不是字符)的形式读取文件。

假设您确实有真正的要求,无需缓冲就可以读取文件,那么您应该使用

FileInputStream
该类。它没有缓冲。它精确地读取(或尝试读取)您要求的字节数。

如果随后需要将这些字节转换为字符,则可以通过将适当的

String
构造函数应用于
byte
或来实现
byte[]
。请注意,对于诸如的多字节字符编码
UTF-8
,您
需要 读取足够的字节才能完成每个字符。做到没有预读的可能性有点棘手……并且需要您正在阅读的字符编码的“知识*”。

(您可以通过

CharsetDeprer
直接使用来避免该知识。但是随后您需要使用
depre
Buffer
对象进行操作的方法,这也有些复杂。)


就其价值而言,Java 明确 区分了字节流和字符流I /
O。前者由

InputStream
和支持
OutputStream
,后者由
Reader
和支持
Write
。该
InputStreamReader
班是一个
Reader
,即
适应
InputStream
。您不应该考虑将其用于想要按字节读取内容的应用程序。



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

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

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