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,并在写入操作期间使用相同的方案将它们放回原处。