即使很大的文件,从里面读取一点数据,速度也很快。全部读取出来,也会占用很少的内存。
核心提示: randomFile.seek(start);
跳跃读取,从这里开始读。指针直接指到start这个位置开始读取文件。
bytes获取可以作如下替换,不同场合,不同使用
<span style="color: #0000ff;">byte</span>[] bytes = <span style="color: #0000ff;">new</span> <span style="color: #0000ff;">byte</span>[<span style="color: #800080;">91</span><span style="color: #000000;">];
</span><span style="color: #0000ff;">int</span> byteread = <span style="color: #800080;">0</span><span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 将一次读取的字节数赋给byteread</span>
<span style="color: #0000ff;">while</span> ((byteread = randomFile.read(bytes)) != -<span style="color: #800080;">1</span><span style="color: #000000;">) {
</span><span style="color: #008000;">//</span><span style="color: #008000;"> System.out.write(bytes, 0, byteread);</span>
<span style="color: #000000;"> }
System.</span><span style="color: #0000ff;">out</span>.println(bytes.length);<span style="color: #0000ff;">byte</span><span style="color: #000000;">[] bytes ;
</span><span style="color: #0000ff;">int</span> byteread = <span style="color: #800080;">0</span><span style="color: #000000;">;
ByteArrayOutputStream byteout </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ByteArrayOutputStream();
</span><span style="color: #0000ff;">byte</span> tmp[] = <span style="color: #0000ff;">new</span> <span style="color: #0000ff;">byte</span>[<span style="color: #800080;">1024</span><span style="color: #000000;">];
</span><span style="color: #0000ff;">byte</span><span style="color: #000000;"> context[];
</span><span style="color: #0000ff;">int</span> i = <span style="color: #800080;">0</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">int</span> has=<span style="color: #800080;">0</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">while</span> ((i = randomFile.read(tmp)) != -<span style="color: #800080;">1</span><span style="color: #000000;">) {
byteout.write(tmp, </span><span style="color: #800080;">0</span><span style="color: #000000;">, i);
has </span>+=<span style="color: #000000;">i;
</span><span style="color: #0000ff;">if</span>(has > <span style="color: #800080;">10240</span><span style="color: #000000;">)
</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;
}
bytes </span>= byteout.toByteArray();
java中利用RandomAccessFile读取超大文件
标签:
本文系统来源:http://www.cnblogs.com/zhujiabin/p/5660541.html
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!