我不确定我是否正确地理解了这一点,但我在想,当我需要将文件内容作为字节数组存储在Java中时,我需要为Java提供文件的编码。
例如,如果我想做好准备,我需要做如下的事情:
Reader reader = Files.newBufferedReader(myFilePath, StandardCharsets.ISO_8859_1)
为什么我不能在使用Files.readAllBytes(myFilePath)
时指定文件的编码?我想做一些像Files.readAllBytes(myFilePath, StandardCharsets.ISO_8859_1)
这样的事情。
我搞错了吗?
发布于 2020-05-28 09:03:26
不,如果希望将字节表示为Charset
(即文本),则只需要一个String
,因为字节的含义取决于编码。
byte[] bytes = Files.readAllBytes(Paths.get("/temp.txt"));
String text = new String(bytes, StandardCharsets.ISO_8859_1);
单个字节数组可以根据编码表示多个不同的字符串,并且数组中的字节独立于编码,因此将编码作为参数传递给该函数是没有意义的。
https://stackoverflow.com/questions/62060753
复制相似问题