在Java中读取文件返回的字节和从字符串获取的字节之间的差异?

在Java中读取文件返回的字节和从字符串获取的字节之间的差异?,java,Java,与将数据读入字符串然后从中获取字节相比,将文件直接读入字节数组会产生不同的输出 直接从文件读取的字节的形式是什么?它与字符串中的get bytes有什么不同 与将数据读入字符串然后从中获取字节相比,将文件直接读入字节数组会产生不同的输出 可能吧。但它可能不会。这取决于您如何将文件读取为文本,以及如何将文本转换回字节 如果在两个方向上使用相同的编码,并且文件最初包含该编码中的文本,那么很可能会返回相同的字节。但是,如果您使用了错误的编码(例如,您将ISO-8859-1编码的文本读取为UTF-8),

与将数据读入字符串然后从中获取字节相比,将文件直接读入字节数组会产生不同的输出

直接从文件读取的字节的形式是什么?它与字符串中的get bytes有什么不同

与将数据读入字符串然后从中获取字节相比,将文件直接读入字节数组会产生不同的输出

可能吧。但它可能不会。这取决于您如何将文件读取为文本,以及如何将文本转换回字节

如果在两个方向上使用相同的编码,并且文件最初包含该编码中的文本,那么很可能会返回相同的字节。但是,如果您使用了错误的编码(例如,您将ISO-8859-1编码的文本读取为UTF-8),或者如果您对这两种转换使用了不同的编码,那么您很可能会得到不同的结果

把文本想象成有点像一种图像格式——如果你读了一个.png文件,然后写出一个.jpeg文件,你不会期望它有相同的字节,是吗?同样,如果您尝试使用JPEG解码器读取.png文件,您可能会得到垃圾(或者更可能是错误)

基本上,不要认为文本是一个字节序列——事实并非如此。可以认为它是完全独立的,使用编码在文本和二进制表示之间进行转换。有关更多详细信息,请参阅

与将数据读入字符串然后从中获取字节相比,将文件直接读入字节数组会产生不同的输出

可能吧。但它可能不会。这取决于您如何将文件读取为文本,以及如何将文本转换回字节

如果在两个方向上使用相同的编码,并且文件最初包含该编码中的文本,那么很可能会返回相同的字节。但是,如果您使用了错误的编码(例如,您将ISO-8859-1编码的文本读取为UTF-8),或者如果您对这两种转换使用了不同的编码,那么您很可能会得到不同的结果

把文本想象成有点像一种图像格式——如果你读了一个.png文件,然后写出一个.jpeg文件,你不会期望它有相同的字节,是吗?同样,如果您尝试使用JPEG解码器读取.png文件,您可能会得到垃圾(或者更可能是错误)

基本上,不要认为文本是一个字节序列——事实并非如此。可以认为它是完全独立的,使用编码在文本和二进制表示之间进行转换。有关更多详细信息,请参阅

与将数据读入字符串然后从中获取字节相比,将文件直接读入字节数组会产生不同的输出

可能吧。但它可能不会。这取决于您如何将文件读取为文本,以及如何将文本转换回字节

如果在两个方向上使用相同的编码,并且文件最初包含该编码中的文本,那么很可能会返回相同的字节。但是,如果您使用了错误的编码(例如,您将ISO-8859-1编码的文本读取为UTF-8),或者如果您对这两种转换使用了不同的编码,那么您很可能会得到不同的结果

把文本想象成有点像一种图像格式——如果你读了一个.png文件,然后写出一个.jpeg文件,你不会期望它有相同的字节,是吗?同样,如果您尝试使用JPEG解码器读取.png文件,您可能会得到垃圾(或者更可能是错误)

基本上,不要认为文本是一个字节序列——事实并非如此。可以认为它是完全独立的,使用编码在文本和二进制表示之间进行转换。有关更多详细信息,请参阅

与将数据读入字符串然后从中获取字节相比,将文件直接读入字节数组会产生不同的输出

可能吧。但它可能不会。这取决于您如何将文件读取为文本,以及如何将文本转换回字节

如果在两个方向上使用相同的编码,并且文件最初包含该编码中的文本,那么很可能会返回相同的字节。但是,如果您使用了错误的编码(例如,您将ISO-8859-1编码的文本读取为UTF-8),或者如果您对这两种转换使用了不同的编码,那么您很可能会得到不同的结果

把文本想象成有点像一种图像格式——如果你读了一个.png文件,然后写出一个.jpeg文件,你不会期望它有相同的字节,是吗?同样,如果您尝试使用JPEG解码器读取.png文件,您可能会得到垃圾(或者更可能是错误)


基本上,不要认为文本是一个字节序列——事实并非如此。可以认为它是完全独立的,使用编码在文本和二进制表示之间进行转换。有关详细信息,请参阅。

这取决于您的编码。。。这就是为什么您应该总是在您创建的任何
读取器
/
写入器
上指定编码,或者在
字符串
中创建的每个
字节[]
上指定编码。您刚才“取消勾选”了我的答案-这是否意味着您还有其他问题?请随意询问更多细节。这取决于您的编码。。。这就是为什么您应该总是在您创建的任何
读取器
/
写入器
上指定编码,或者在
字符串
中创建的每个
字节[]
上指定编码。您刚才“取消勾选”了我的答案-这是否意味着您还有其他问题?请随意询问更多细节。这取决于您的编码。。。这就是为什么您应该总是在您创建的任何
读取器
/
写入器
上指定编码,或者在
字符串
中创建的每个
字节[]
上指定编码。您刚才“取消勾选”了我的答案-这是否意味着您还有其他问题?请随意询问更多细节。这取决于您的编码。。。这就是为什么您应该总是在任何
R上指定编码