当前位置: 首页 > 知识库问答 >
问题:

理解Java InputStream读取方法的问题

强安和
2023-03-14

假设我有一个输入流。如果我错了请纠正我,但是InputStream中的所有数据都保存为字节,例如下面的文本:“为什么不使用♥?”现在我想知道,这个文本是如何转换成字节数组的,因为我不知道(例如)♥是如何保存的。如果我打电话

InputStream myInputStream = os.getInputStream();
byte[] b = new byte[1];
while ((in.read(b)) != -1) {
            System.out.write(b, 0, 1);
}

然后我的字节数组(长度为1)将在每个循环中用下一个字节填充。

int.read(b)

返回一个整数值,该值稍后转换为字符。因此,如果我看一下Java文档,您会发现如下所示:

有人能帮我做这个脑筋急转弯吗?Thx很多。

共有1个答案

尹承业
2023-03-14

将字符转换为字节(反之亦然)的过程称为“字符编码”。它可以用许多不同的方法来完成。这些转换的规则包含在Java所称的charset中。Java支持其中的许多标准:ASCII、UTF_8、UTF_16、ISO_8859_1等。

有些charset认为字节和字符之间的映射是一对一的。ISO_8859_1(又名拉丁-1)就是其中之一。但是也有一个缺点:只有256个字符可以使用这样的字符集编码成字节(ISO_8859_1)。

其他一些,如UTF_8,根据字符的不同,每个字符使用一个、两个或更多字节。ASCII字符(a-b、a-b、数字等)编码在一个字节上,而其他字符(重音字母、中文、西里尔字母和其他字母)使用两个或更多字节。缺点是更难编码和解码,但好处是巨大的:这种编码支持每一个可能的Unicode字符。

 类似资料:
  • 本文向大家介绍解决python xlrd无法读取excel文件的问题,包括了解决python xlrd无法读取excel文件的问题的使用技巧和注意事项,需要的朋友参考一下 读取文件时报错: 该xls文件在打开时确实会警告该文件与扩展名格式不一致。用文本编辑器打开该xls文件查看,发现确实不是xls文件,而是xml文件被保存为了xls文件。 解决办法:将文件后缀名改为.xml,作为xml文件读入。

  • 本文向大家介绍Android读取本地json文件的方法(解决显示乱码问题),包括了Android读取本地json文件的方法(解决显示乱码问题)的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android读取本地json文件的方法。分享给大家供大家参考,具体如下: 1、读取本地JSON ,但是显示汉字乱码 2、读取本地JSON,显示汉字正确,txt文件设置时UTF-8,UNIX 更多关于A

  • 本文向大家介绍python读取xml文件方法解析,包括了python读取xml文件方法解析的使用技巧和注意事项,需要的朋友参考一下   关于python读取xml文章很多,但大多文章都是贴一个xml文件,然后再贴个处理文件的代码。这样并不利于初学者的学习,希望这篇文章可以更通俗易懂的教如何使用python来读取xml文件。 什么是xml? xml即可扩展标记语言,它可以用来标记数据、定义数据类型,

  • 本文向大家介绍python读取xlsx的方法,包括了python读取xlsx的方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇python读取xlsx的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 我在一个教程中看到,BufferedInputStream类本身中的int read(字节b[],int off,int len)使用read()方法读取数据。 所以我的问题是,正常模式和不使用BufferedInputStream和使用buffer有什么区别?缓冲区应该以块的形式读取字节以降低成本,但这里它是逐字节读取。

  • 本文向大家介绍python对DICOM图像的读取方法详解,包括了python对DICOM图像的读取方法详解的使用技巧和注意事项,需要的朋友参考一下 DICOM介绍 DICOM3.0图像,由医学影像设备产生标准医学影像图像,DICOM被广泛应用于放射医疗,心血管成像以及放射诊疗诊断设备(X射线,CT,核磁共振,超声等),并且在眼科和牙科等其它医学领域得到越来越深入广泛的应用。在数以万计的在用医学成像