javaseek(的简单介绍

博主:adminadmin 2023-03-22 03:23:06 563

今天给各位分享javaseek(的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java中file.seek(0);是什么意思?

楼主 我要告诉你 file.seek(int类型的参数)表示从文件的第几个位置开始收索

这个程序中如果没有了file.seek(0);就会出错:

--------------- file.seek(0);专门用于随机读取流。所以在随机读取流的时候必须写

而且改变seek()中的数字也会出错:

--------只要你文件足够大 参数可以是一个任意整数

---------你出错是因为file.seek(0);是从位置0开始的 下面的那个语句:(System.out.println(file.readInt());)也是从第零个位置开始的

如果你要 file.seek(1); 去掉System.out.println(file.readInt());就可以了!

java中使用skipByts有什么意义

seek(long a)是定位文件指针在文件中的位置。参数a确定读写位置距离文件开头的字节个数,比如seek(0)就是定位文件指针在开始位置。是绝对定位。

skipBytes()是指在文件中跳过给定数量的字节。是相对定位。

对于seek方法,拥有skipBytes( )的功能,但seek( )在使用过程非常影响系统的开销。

java中seek()的用法

写段代码你看一下吧,用于从文件指定的位置开始读取,一般的下载工具都有断点续传功能,比如读取某个文件读取了一半,取消下载了,下次再下载的时候,从断点的位置继续下载,而不是重新下载文件,使用这个方法可以做到

public class Test2 {

    public static void main(String[] args) throws Exception {

        String filepath = "E:/test.exe";

        String outFile = "E:/copy.exe";

        long pos = firstRead(filepath, outFile);

        continueRead(filepath, outFile, pos);

    }

       

    /**

     * 第一次只读取文件的一半,到目标文件

     */

    public static long firstRead(String filepath, String out) throws Exception {

        RandomAccessFile file = new RandomAccessFile(filepath, "r");

        long fileLen = file.length();

           

        FileOutputStream outStream = new FileOutputStream(out);

        int sum = 0;  // 用于记录当前读取源文件的长度

        byte[] cache = new byte[1024];

        int len = -1;

        while ((len = file.read(cache)) != -1 sum fileLen/2) {

            outStream.write(cache, 0, len);

            sum += len;

        }

        outStream.close();

        file.close();

           

        return sum;   // 返回当前读取源文件的长度

    }

       

    /**

     * 从源文件指定位置继续读取文件内容,并输出到目标文件

     */

    public static void continueRead(String filepath, String out, long pos) throws Exception {

        RandomAccessFile file = new RandomAccessFile(filepath, "r");

        file.seek(pos);

           

        // 追加到目标文件中

        FileOutputStream outStream = new FileOutputStream(out, true);

        byte[] cache = new byte[1024];

        int len = -1;

        while ((len = file.read(cache)) != -1) {

            outStream.write(cache, 0, len);

        }

        outStream.close();

        file.close();

    }

}

关于javaseek(和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。