001 package org.bukkit.util;
002
003 import java.nio.channels.FileChannel;
004 import java.io.File;
005 import java.io.FileInputStream;
006 import java.io.FileOutputStream;
007 import java.io.IOException;
008
009 /**
010 * Class containing file utilities
011 */
012 public class FileUtil {
013
014 /**
015 * This method copies one file to another location
016 *
017 * @param inFile the source filename
018 * @param outFile the target filename
019 * @return true on success
020 */
021 public static boolean copy(File inFile, File outFile) {
022 if (!inFile.exists()) {
023 return false;
024 }
025
026 FileChannel in = null;
027 FileChannel out = null;
028
029 try {
030 in = new FileInputStream(inFile).getChannel();
031 out = new FileOutputStream(outFile).getChannel();
032
033 long pos = 0;
034 long size = in.size();
035
036 while (pos < size) {
037 pos += in.transferTo(pos, 10 * 1024 * 1024, out);
038 }
039 } catch (IOException ioe) {
040 return false;
041 } finally {
042 try {
043 if (in != null) {
044 in.close();
045 }
046 if (out != null) {
047 out.close();
048 }
049 } catch (IOException ioe) {
050 return false;
051 }
052 }
053
054 return true;
055
056 }
057 }