Java FileChannel Copy copyFile(File from, File to, long fromoffset, long tooffset, long size)

Here you can find the source of copyFile(File from, File to, long fromoffset, long tooffset, long size)

Description

copy File

License

Open Source License

Declaration

@SuppressWarnings("resource")
    public static void copyFile(File from, File to, long fromoffset, long tooffset, long size) throws IOException 

Method Source Code


//package com.java2s;
/*/*from   w  w w.ja  va  2  s .c  o  m*/
OurFileSystem is a peer2peer file sharing program.
Copyright (C) 2012  Robert Gass
    
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
    
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
    
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    
*/

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import java.io.RandomAccessFile;

import java.nio.channels.FileChannel;

public class Main {
    @SuppressWarnings("resource")
    public static void copyFile(File from, File to, long fromoffset, long tooffset, long size) throws IOException {
        FileInputStream fis = new FileInputStream(from);
        RandomAccessFile raf = new RandomAccessFile(to, "rw");
        fis.skip(fromoffset);
        raf.seek(tooffset);
        byte buffer[] = new byte[1024];
        long xfered = 0;
        while (xfered < size) {
            int xln = fis.read(buffer, 0, (int) Math.min(buffer.length, size - xfered));
            if (xln < 0) {
                throw new IOException("End of file reach prematurely.");
            }
            raf.write(buffer, 0, xln);
            xfered += xln;
        }
        fis.close();
        raf.close();
    }

    @SuppressWarnings("resource")
    public static void copyFile(File from, File to, boolean deleteoncopy) throws IOException {
        FileOutputStream fos = new FileOutputStream(to);
        FileChannel foc = fos.getChannel();
        FileInputStream fis = new FileInputStream(from);
        FileChannel fic = fis.getChannel();
        foc.transferFrom(fic, 0, from.length());
        foc.close();
        fic.close();
        if (deleteoncopy) {
            from.delete();
        }
    }
}

Related

  1. copyFile(File fileIn, File fileOut)
  2. copyFile(File from, File to)
  3. copyFile(File from, File to)
  4. copyFile(File from, File to)
  5. copyFile(File from, File to)
  6. copyFile(File in, File out)
  7. copyFile(File in, File out)
  8. copyFile(File in, File out)
  9. copyFile(File in, File out)