java中I/O流中的随机流

来源:互联网 发布:美股日内交易软件 编辑:程序博客网 时间:2024/06/09 20:12

随机流要实现RandomAccessFile这个方法
RandomAccessFile raf = new RandomAccessFile(“D:/IOTest/helloworld.txt”, “r”);读数据第二个参数是“r”写数据第二个参数是“rw”

//读数据public class RandomDemo {    /**     * 断点续传 暂停后,可以从原来的地方接着继续传 多线程 断点下载 分块下载     *      * @param args     */    public static void main(String[] args) {        // 创建一个 随机流的对象        try {            // 使用dataInputStream            RandomAccessFile raf = new RandomAccessFile(                    "D:/IOTest/helloworld.txt", "r");            char c = 0;            raf.seek(2048);            System.out.println("文件指针" + raf.getFilePointer());            byte[] buf = new byte[1024];            int len = 0;            while ((len = raf.read(buf)) != -1) {                System.out.println(new String(buf, 0, len));                System.out.println("文件指针" + raf.getFilePointer());            }            //下面使用char来实现的和上面一样            // while ((c = raf.readChar()) != -1) {            // System.out.print(c);            // System.out.println("文件指针" + raf.getFilePointer());            // }        } catch (Exception e) {            e.printStackTrace();        }    }}//写数据public static void main(String[] args) {        try {            RandomAccessFile raf = new RandomAccessFile("file.txt", "rw");            raf.writeUTF("你好,随机流");            raf.writeUTF("你好,随机流");            raf.writeUTF("你好,随机流");            raf.writeUTF("你好,随机流");            raf.writeUTF("你好,随机流");            raf.writeUTF("你好,随机流");            raf.writeUTF("你好,随机流");            raf.writeUTF("你好,随机流");            raf.writeUTF("你好,随机流");            // 读            raf.seek(0);// 跳到头            // System.out.println(raf.readBoolean());            // System.out.println(raf.readChar());            // System.out.println(raf.readDouble());            // System.out.println(raf.readUTF());            // 最后面插入            // 跳到最后            raf.seek(raf.length());            raf.writeUTF("插入到最后");            // 插入到中间,从指定位置开始插入            raf.seek(20);            raf.writeUTF("插入到中间");        } catch (Exception e) {            e.printStackTrace();        }    }
0 0
原创粉丝点击