xhjwyy 2016-12-17 11:48 采纳率: 57.1%
浏览 1307
已采纳

transferFrom复制的东西都是空的

 public void TestTransferFrom() {

        try {
            RandomAccessFile raf = new RandomAccessFile("C:\\Users\\Hajon\\Downloads\\apache-maven-3.3.9-bin.zip", "rw");
            FileChannel fromChannel=raf.getChannel();

            RandomAccessFile raf1 = new RandomAccessFile("C:\\Users\\Hajon\\Downloads\\apache-maven-3.3-bin.zip", "rw");
            FileChannel toChannel=raf.getChannel();

            long position=0;
            long size=fromChannel.size();
            System.out.println(size);
            toChannel.transferFrom(fromChannel, position, size);
            raf.close();
            raf1.close();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    }

执行完后的复制结果都是空的怎么回事

  • 写回答

2条回答 默认 最新

  • 编程爱好者熊浪 2016-12-17 15:11
    关注

    public static void TestTransferFrom() {
    try {
    RandomAccessFile raf = new RandomAccessFile("D:/eclipse/lib/tuscany-sdo-impl-1.1.1.src.zip", "rw");
    FileChannel fromChannel=raf.getChannel();

            RandomAccessFile raf1 = new RandomAccessFile("D:/tuscany-sdo-impl-1.1.1.src.zip", "rw");
            FileChannel toChannel=raf1.getChannel();
    
            long position=0;
            long size=fromChannel.size();
            System.out.println(size);
            toChannel.transferFrom(fromChannel, position, size);
            fromChannel.close();
            toChannel.close();
            raf.close();
            raf1.close();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
        输出流应该是raf1,而不是还用输入流。
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?