Java 以UTF-8编码读取文件并转换为字节数组

Java 以UTF-8编码读取文件并转换为字节数组,java,encoding,character-encoding,inputstream,Java,Encoding,Character Encoding,Inputstream,我可以做到这一点,但这个问题更需要了解实现这一点的最佳方式是什么 我可以执行以下操作以在缓冲读取器中获取文件 BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8")); 在这之后最好的方法是什么?最好的方法通常是最简单的方法: Path path = Paths.get("path/to/file"); byte[] data =

我可以做到这一点,但这个问题更需要了解实现这一点的最佳方式是什么

我可以执行以下操作以在缓冲读取器中获取文件

BufferedReader bufferedReader = new BufferedReader(new   InputStreamReader(new FileInputStream(file), "UTF-8"));

在这之后最好的方法是什么?

最好的方法通常是最简单的方法:

Path path = Paths.get("path/to/file");
byte[] data = Files.readAllBytes(path);
PS:如果您有一个
文件
对象而不是路径的字符串表示,那么只需将
文件
转换为
路径

Path path = file.toPath()

第一个要求是以UTF格式读取文件,然后进一步处理。UTF不是一种格式,而是一种编码方案。如果您的文件已经是UTF-8编码的,您只需要读取它。再没有什么了,要求本身也没有什么意义。看:UTF-8是一种编码。即:将字符转换为字节(反之亦然)的参数。每个转换都必须有其正确的编码。因此,如果您读取具有特定编码的文件(始终是字节序列),这是因为它应该转换为字符。好啊然后,如果必须再次将其转换回字节,则必须使用相同的编码,因此。。。它变成了一个纯粹的do+undo。您可以将文件读取为字节,而不必考虑编码。