我有一个45MB的大文件,并假设我可用的内存有限,我想先读取5MB,依此类推。
我需要使用Java来做到这一点。有人请帮帮我。
提前致谢!!
答案 0 :(得分:1)
我认为你可以为此使用基本的字节流。查看http://docs.oracle.com/javase/tutorial/essential/io/bytestreams.html
我将使用FileInputStream类的read(byte [] b)方法,该方法'从此输入流中读取b.length个字节的数据到一个字节数组'
read(byte [] b,int off,int len)方法也允许您使用先前读取数据的偏移量来执行此操作。
答案 1 :(得分:0)
以下代码将从文件读取5000字节(5MB)。
byte[] bytes = new byte[5000];
DataInputStream dis = new DataInputStream(new FileInputStream(file));
int read = 0;
int numRead = 0;
while (read < bytes.length && (numRead=dis.read(bytes, read, bytes.length-read)) >= 0) {
read = read + numRead;
}