我目前正在研究Java I/O,虽然它很容易工作和处理字节流和字符流。我只是想知道,java如何设法将任何类型的文件(图像,pdf等)转换为它的文件字节数组表示。
最佳答案
对于计算机来说,文件只不过是磁盘上的字节集合(以及一些元数据,如名称、路径、数据...)。实际上并不存在文件“类型”这样的东西。
但是 pdf 文件到底意味着什么呢?这是一个约定,我们说 pdf 文件的名称以“.pdf”结尾(也称为扩展名),并且该文件中存储的第一个字节是 25 50 44 46(魔数(Magic Number) https://en.wikipedia.org/wiki/List_of_file_signatures )。
更直接地回答你的问题:操作系统负责从磁盘读取文件。 Java只使用正确的系统调用。这个调用是在具体的JVM中实现的。
PS:如果您想自己调查这一点,您可以使用十六进制编辑器以字节形式查看每个文件。 (选择您最喜欢的: https://en.wikipedia.org/wiki/Comparison_of_hex_editors )在编辑器中,您将看到文件实际上只不过是字节。
关于java - java如何在内部将任何类型的文件(图像、pdf等)转换为字节数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52217870/