Java加载二进制文件[英] Java loading binary files

问题描述

请告诉我最好/快速的方法:

1)将非常小的二进制文件加载到内存中.例如图标;

2)加载/读取大小512MB +的非常大的二进制文件.也许我必须使用内存映射的IO?

3)您不想思考大小/速度但必须只做的事情,但必须只做的事情:将所有字节读入内存?

谢谢!!!

p.s.对不起可能是微不足道的问题.请不要关闭它;)

第2页. 镜像模拟问题的c#;

推荐答案

对于内存映射文件,Java有一个nio包:内存映射文件

签出小文件的字节流类:字节流

检查较大文件的缓冲I/O:缓冲流

其他推荐答案

将小文件读入内存的最简单方法是:

// Make a file object from the path name
File file=new File("mypath");
// Find the size
int size=file.length();
// Create a buffer big enough to hold the file
byte[] contents=new byte[size];
// Create an input stream from the file object
FileInputStream in=new FileInutStream(file);
// Read it all
in.read(contents);
// Close the file
in.close();
在现实生活中,如果I/O错误,则需要一些尝试/捕获块.

如果您正在读取一个大文件,我将强烈建议在可能避免的情况下,如果可能避免,请勿在一次内读入内存.阅读它并在块中处理它.这是一个非常罕见的应用程序,真正需要一次在内存中持有500MB的文件.

在Java中没有内存映射I/O这样的东西.如果这是您需要做的,您只需创建一个非常大的字节数组.

本文地址:https://www.itbaoku.cn/post/978501.html

相关标签/搜索