Home > File > Xây dựng đường dẫn file trong Java

Xây dựng đường dẫn file trong Java

Đường dẫn của file phụ thuộc vào hệ điều hành, có 2 cách để xây dựng một đường dẫn file trong Java :

  • Kiểm tra hệ điều hành và tạo dấu phân cách ( separator ) bằng tay. (Không khuyến khích)
  • Để Java làm tất cả với File.separator ( Nên theo cách này )

Việc sử dụng File.separator luôn được khuyến khích dùng bởi vì nó sẽ kiểm tra hệ điều hành của bạn và tự động hiển thị chính xác dấu phân cách file. Ví dụ :

  • Windows : trả về “\”
  • *nix : trả về “/”

Ví dụ 1 : Cách cổ điển để xây dựng một đường dẫn file thủ công ( Không khuyến khích )

package quyetdv.java.javaio.file;
import java.io.File;
import java.io.IOException;
public class ManualFileSeparator {
    public static void main(String[] args) {
        try {
            String fileName = "test1.txt";
            String finalFile = "";
            String workingDir = System.getProperty("user.dir");
            String your_os = System.getProperty("os.name").toLowerCase();
            if (your_os.indexOf("win") >= 0) {
                finalFile = workingDir + "\\" + fileName;
            } else if (your_os.indexOf("nix") >= 0
                || your_os.indexOf("nux") >= 0) {
                finalFile = workingDir + "/" + fileName;
            } else {
                finalFile = workingDir + "{others}" + fileName;
            }
            System.out.println("Final filepath : " + finalFile);
            File file = new File(finalFile);
            if (file.createNewFile()) {
                System.out.println("File is created!");
            } else {
                System.out.println("File already exists!");
            }
        } catch (IOException e) {
            e.printStackTrace();
     }
 }
}

Ví dụ 2 : Cách đúng đắn là sử dụng File.separator, chỉ cần 1 dòng code có thể thay thế tất cả việc check của ví dụ 1.

package quyetdv.java.javaio.file;
import java.io.File;
import java.io.IOException;
public class AutoFileSeparator {
     public static void main(String[] args) {
        try {
            String fileName = "test2.txt";
            String finalFile = "";
            String workingDir = System.getProperty("user.dir");
            finalFile = workingDir + File.separator + fileName;
            System.out.println("Final filepath : " + finalFile);
            File file = new File(finalFile);
            if (file.createNewFile()) {
                System.out.println("File is created!");
            } else {
                System.out.println("File already exists!");
            }
        } catch (IOException e) {
             e.printStackTrace();
     }
}
}
Advertisements
Categories: File
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: