替代移动文件

时间:2013-10-15 02:30:53

标签: java file-io

我想知道是否有其他方法可以将文件从一个目录移动到另一个目录,我的程序片段如下。我相信应该有一种在java中移动文件的有效方法。如果可能的话,请查看并回复。谢谢!

public static void movFile(File pathFromMove,File pathToMove,File fileToMove)    //helper method 2
{

    String absPathFile2= pathToMove.getAbsolutePath() + "\\"+fileToMove.getName();                                                              //{

    InputStream inStream = null;
    OutputStream outStream = null;

    try
    {
        //System.out.println("i am here no1");
        inStream= new FileInputStream(fileToMove);
        outStream=new FileOutputStream(absPathFile2);
        byte[] buffer = new byte[1024];


        int length;
        while (( length = inStream.read(buffer)) > 0)
        {

            outStream.write(buffer, 0, length);
            //System.out.println("i am here no2");

        }
      inStream.close();
        outStream.close();
        fileToMove.delete();            //to delete the original files
    //  System.out.println("i am here no3");

    }
    catch(IOException e)
    {
        //System.out.println("i am here no4");

        e.printStackTrace();
    }

}

1 个答案:

答案 0 :(得分:2)

如果它在同一个磁盘上,File.renameTo将是高效的

我不确定为什么你需要3个File引用,两个应该足够......但这是你的代码......

例如......

public static void movFile(File pathFromMove,File pathToMove,File fileToMove) throws IOException {

    File from = new File(pathFromMove + File.separator + fileToMove);
    File to = new File(pathToMove+ File.separator + fileToMove);

    if (!from.renameTo(to)) {
        throw new IOException("Failed to move " + from + " to " + to);
    }

}

您可以查看使用Java 7中提供的新Paths API的Moving a File or Directory