Hướng dẫn thay đổi tên file trong java

Bài này tôi sẽ hướng dẫn các bạn cách đổi tên file trong java.

Khi upload một file nào đó lên web server,nếu quá trình thực hiện upload file trùng tên thì file sẽ bị ghì đè lên nhau nếu trùng tên file.Vậy nên việc xử lý đổi tên file là cần thiết để thực hiện việc upload file.Ở bài này,tôi sẽ hướng dẫn các bạn đổi tên file qua hai cách xử lý là dùng thuật toán để đổi tên file hoặc chúng ta có thể dùng thư viện để có thể tiến hành thay đổi tên file.

 Cách 1 : dùng thuật toán để xử lý đổi tên file.

Ví dụ : tôi sẽ có một file hình ảnh có tên : itphutran-doi-ten-file.java.png. Vậy tôi sẽ mong muốn file hình ảnh trả về sẽ có tên file là  :  itphutran-doi-ten-file-java-20919911.png.

Trong đó :

  •  itphutran-doi-ten-file-java là tên file.
  • 20919911 : là thời gian hiện tại,vì thời gian hiện tại sẽ không bao giờ trùng.
  • png : là đuôi file.

Vậy nên tôi sẽ tạo một class  có tên RenameFileLibrary và viết một phương thức để xử lý đổi tên file :

package library;

public class RenameFileLibrary {
	
	public static String renameFile(String fileName){
		String[] arrImg =  fileName.split("\\.");
		String duoiFileImg = arrImg[arrImg.length - 1];
		String nameFile = "";
		for (int i  = 0;i< (arrImg.length - 1) ; i++) {
			if(i == 0){
				nameFile = arrImg[i];
			}else{
				nameFile += "-"+arrImg[i];
			}
		}
		nameFile = nameFile + "-"+System.nanoTime() +"."+duoiFileImg;
		return nameFile;
	}
	
}

Sau khi viết xong phương thức renameFile các bạn gọi method này và chạy chương trình :

package library;

public class RenameFileLibrary {
	
	public static String renameFile(String fileName){
		String[] arrImg =  fileName.split("\\.");
		String duoiFileImg = arrImg[arrImg.length - 1];
		String nameFile = "";
		for (int i  = 0;i< (arrImg.length - 1) ; i++) {
			if(i == 0){
				nameFile = arrImg[i];
			}else{
				nameFile += "-"+arrImg[i];
			}
		}
		nameFile = nameFile + "-"+System.nanoTime() +"."+duoiFileImg;
		return nameFile;
	}
	public static void main(String[] args) {
		System.out.println(RenameFileLibrary.renameFile("itphutran-doi-ten-file-java.png"));
	}
	
}

Kết quả : 

 Cách 2 : dùng thư viện để đổi tên file một cách đơn giản :

Cũng lấy ví dụ ở phần 1 ,để đổi tên file bằng  thư viện các bạn cần có library và các bước thực hiện như sau :

1.Link download : Commons IO.Các bạn download bản .zip.

2.Add library Commons IO vào project đang sử dụng.

3.Tạo class và method như sau  :

package library;

import org.apache.commons.io.FilenameUtils;

public class RenameFileAddLibrary {
	
	public static String renameFile(String fileName){
		return FilenameUtils.getBaseName(fileName)+"-"+System.nanoTime()+"."+FilenameUtils.getExtension(fileName);
	}
	
}

4.Gọi method rename và sử dụng :

package library;

import org.apache.commons.io.FilenameUtils;

public class RenameFileAddLibrary {
	
	public static String renameFile(String fileName){
		return FilenameUtils.getBaseName(fileName)+"-"+System.nanoTime()+"."+FilenameUtils.getExtension(fileName);
	}
	public static void main(String[] args) {
		System.out.println(RenameFileAddLibrary.renameFile("itphutran-doi-ten-file-java.png"));;
	}
	
}

Kết quả : 

Trong đó : 

  • FilenameUtils.getBaseName(fileName) : đây là phương thức của class FilenameUtils dùng để lấy tên file.
  • FilenameUtils.getExtension(fileName) : đây là phương thức của class FilenameUtils dùng để lấy tên đuổi file.
  • System.nanoTime() : lấy thời gian hiện tại.

Như vậy,chúng ta đã đổi tên file thành công qua 2 cách.Tùy theo mỗi người mà chúng ta có những cách áp dụng riêng.Tuy nhiên tôi khuyên những bạn mới lập trình java nên code lại theo cách 1 để có thể hiểu thuật toán ,sau khi đã hiểu code thì các bạn mới nên sử dụng library.

Chúc các bạn thực hiện thành công!

 

 

x