Java fileinputstream中读取方法中使用的字节数据类型

Java fileinputstream中读取方法中使用的字节数据类型,java,fileinputstream,Java,Fileinputstream,我读过FileInputStream,发现它有一个read方法,可以读取文件的字节数据 我想知道的是它读取什么类型的字节数据?意思是它是否使用ASCII或Unicode或任何其他类型?它不会更改文件编码。如果要以所需编码在字节[]中解码,可以使用字符集在所需字符集中转换,如下所示: Charset cs = Charset.forName("UTF-8"); // breaks too String convertedString= new String(byteArray, cs)

我读过
FileInputStream
,发现它有一个read方法,可以读取文件的字节数据


我想知道的是它读取什么类型的字节数据?意思是它是否使用ASCII或Unicode或任何其他类型?

它不会更改文件编码。如果要以所需编码在字节[]中解码,可以使用
字符集
在所需字符集中转换,如下所示:

   Charset cs = Charset.forName("UTF-8"); // breaks too
   String convertedString= new String(byteArray, cs);       

它不会更改文件编码。如果您希望以所需编码对字节[]进行解码,可以使用
字符集
以所需字符集进行转换,如下所示:

   Charset cs = Charset.forName("UTF-8"); // breaks too
   String convertedString= new String(byteArray, cs);       

FileInputStream用于读取原始字节流,如图像数据。要读取字符流,请考虑使用FieleRADER。

ASCII码,Unicode码。。。适用于字符,而不是字节。它们只是字节(8位)

您可以在指定字符集的位置使用。

FileInputStream用于读取原始字节流,如图像数据。要读取字符流,请考虑使用FieleRADER。

ASCII码,Unicode码。。。适用于字符,而不是字节。它们只是字节(8位)


可以在指定字符集的位置使用。

FileInputStream
是一个二进制I/O类。文本I/O需要从Unicode转换为文件特定编码,反之亦然,但二进制I/O不需要任何转换。从文件读取字节时,将返回原始字节。

FileInputStream
是一个二进制I/O类。文本I/O需要从Unicode转换为文件特定编码,反之亦然,但二进制I/O不需要任何转换。从文件中读取字节时,将返回原始字节

我想知道的是它读取什么类型的字节数据?这意味着它是否使用ASCII、Unicode或任何其他类型

FileInputStream
及其方法而言,只有一种“类型”的数据。这种类型是“字节序列(或八位字节)”

任何其他“类型”都由另一个库(或应用程序代码)层处理

您称为ASCII和Unicode的“类型”是字符编码(粗略地说)。(事实上,Unicode根本不是一种编码……在这种情况下也没有什么意义。Unicode编码有“UTF-8”和“UTF-16”等名称——请参阅。)

无论如何,“处理”文本文件类型(即某些标准字符编码方案中的字符序列)的标准方法是使用
读取器
类。还有一个名为
InputStreamReader
的包装类,它专门用于从
InputStream
读取字符数据

其他非文本“类型”的数据由类处理,如
ZipInputStream
InflaterInputStream
GZIPInputStream
、图像读取器类等

我想知道的是它读取什么类型的字节数据?这意味着它是否使用ASCII、Unicode或任何其他类型

FileInputStream
及其方法而言,只有一种“类型”的数据。这种类型是“字节序列(或八位字节)”

任何其他“类型”都由另一个库(或应用程序代码)层处理

您称为ASCII和Unicode的“类型”是字符编码(粗略地说)。(事实上,Unicode根本不是一种编码……在这种情况下也没有什么意义。Unicode编码有“UTF-8”和“UTF-16”等名称——请参阅。)

无论如何,“处理”文本文件类型(即某些标准字符编码方案中的字符序列)的标准方法是使用
读取器
类。还有一个名为
InputStreamReader
的包装类,它专门用于从
InputStream
读取字符数据


其他非文本“类型”的数据由类处理,如
ZipInputStream
InflaterInputStream
GZIPInputStream
、图像读取器类等等。

它只读取字节,不管字节是什么。对于您的情况,应该使用StreamReader类。您可以在构造函数中指定编码。当它读取一个字节时,它使用指定的方案将它们转换为Unicode,并在写入操作期间使用相同的方案将它们放回原处。它只读取字节,不管它是什么。对于您的情况,应该使用StreamReader类。您可以在构造函数中指定编码。当它读取一个字节时,它使用指定的方案将它们转换为Unicode,并在写入操作期间使用相同的方案将它们放回原处。