我想知道是否有其他方法可以将文件从一个目录移动到另一个目录,我的程序片段如下。我相信应该有一种在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();
}
}
答案 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