Trong java không có sẵn phương thức nào để move (di chuyển) file từ thư mục này sang thư mục khác. Tuy vậy, bạn vẫn có thể move file trong java bằng 1 trong 2 cách sau:
- File.renameTo().
- Copy tới một file mới và xóa file cũ.
Dưới đây là 2 ví dụ cho 2 cách trên để move file "file1.txt "từ thư mục "D:\\log" tới thư mục "D:\\logtest".
1. Sử dụng File.renameTo()
Phương thức renameTo() hoạt động được trên nền tẳng *nix.
import java.io.File; public class MoveFileExample1 { public static void main(String[] args) { try { File afile = new File("D:\\log\\file1.txt"); if (afile.renameTo(new File("D:\\logtest\\" + afile.getName()))) { System.out.println("File is moved successful!"); } else { System.out.println("File is failed to move!"); } } catch (Exception e) { e.printStackTrace(); } } }
2. Copy tới một file mới và xóa file cũ
Cách này thực hiện thành công trên cả *nix và Windows
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class MoveFileExample2 { public static void main(String[] args) throws IOException { InputStream inStream = null; OutputStream outStream = null; try { File fileLog1 = new File("D:\\log\\file1.txt"); File fileLog2 = new File("D:\\logtest\\file1.txt"); inStream = new FileInputStream(fileLog1); outStream = new FileOutputStream(fileLog2); int length; byte[] buffer = new byte[1024]; // copy the file content in bytes while ((length = inStream.read(buffer)) > 0) { outStream.write(buffer, 0, length); } // delete the original file fileLog1.delete(); System.out.println("File is copied successful!"); } catch (IOException e) { e.printStackTrace(); } finally { inStream.close(); outStream.close(); } } }