[Thực hành] Copy các file có dung lượng lớn

IO: Binary File & Serialization

Mục tiêu

Luyện tập làm việc với file binary.

Mô tả

Viết một ứng dụng cho phép copy các file có dung lượng lớn.

Ứng dụng cho phép nhập vào đường dẫn của file nguồn, đường dẫn của thư mục đích và sao chép file nguồn sang thư mục đích.

Hướng dẫn

Bước 1: Tạo class Main, Trong lớp Main thực hiện tạo 2 phương thức private static

void copyFileUsingJava7Files(File source, File dest)

void copyFileUsingStream(File source, File dest)

Bước 2: Cài đặt phương thức copyFileUsingJava7Files

Copy file sử dụng java 7 Files class

 private static void copyFileUsingJava7Files(File source, File dest) throws IOException {                             
      Files.copy(source.toPath(), dest.toPath(), StandardCopyOption.REPLACE_EXISTING);
 }

Bước 3: Cài đặt phương thức copyFileUsingStream

Copy file sử dụng streams

private static void copyFileUsingStream(File source, File dest) throws IOException {
	InputStream is = null;
	OutputStream os = null;
	try {
		is = new FileInputStream(source);
		os = new FileOutputStream(dest);
		byte[] buffer = new byte[1024];
		int length;
		while ((length = is.read(buffer)) > 0) {
		os.write(buffer, 0, length);
		}
	} finally {
		is.close();
		os.close();
	}
}

Bước 4: Tạo method main cho phép nhập vào đường dẫn của file nguồn, đường dẫn của thư mục đích và gọi 2 method trên và kiểm tra kết quả

public static void main(String[] args) {
	Scanner in = new Scanner(System.in);

	System.out.printf("Enter source file:");
	String sourcePath = in.nextLine();
	System.out.printf("Enter destination file:");
	String destPath = in.nextLine();

	File sourceFile = new File(sourcePath);
	File destFile = new File(destPath);

	try {
		copyFileUsingJava7Files(sourceFile, destFile);
                //copyFileUsingStream(sourceFile, destFile);
		System.out.printf("Copy completed");
	} catch (IOException ioe) {
		System.out.printf("Can't copy that file");
		System.out.printf(ioe.getMessage());
	}
}

Bước 5: Chạy chương trình và quan sát kết quả

Output:

  • TH copy file thành công

Enter source file:D:\Source\TestSite.rar

Enter destination file:D:\Source\Java\TestOuput.rar

Copy completed

  • TH copy file thất bại

Enter source file:try copy

Enter destination file:try copy

Can’t copy that file try copy


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Leave a Reply

Your email address will not be published. Required fields are marked *