Tạo file trong Java là một hoạt động thường xuyên và phổ biến trong Java. Có nhiều cách khác nhau để làm công việc này trong Java. Ở đây mình sẽ giới thiệu 2 phương thức để tạo file trong Java là:

  • Sử dụng phương thức File.createNewFile
  • Sử dụng phương thức FileOutputStream

1. Tạo file bằng phương thức File.createNewFile

Ta có thể tạo một tập tin rỗng với một tập giá trị khởi tạo cho các thuộc tính bằng cách sử dụng phương thức createFile . Ví dụ vào thời điểm tạo ta muốn có một tập tin để có một tập hợp các quyền tập tin thì ta sẽ sử dụng phương thức createFile đê thực hiện. Nếu ta không chỉ định bất kỳ các thuộc tính nào thì tập tin sẽ được tạo ra với các thuộc tính mặc định. Nếu tập tin đã tồn tại thì một ngoại lệ sẽ được ném ra.

Với việc tạo file, phương thức createNewFile() thì phương thức này tạo ra một file trống. Nếu file không tồn tại ở vị trí đã chỉ định và trả về giá trị True. Nếu tập tin đã có thì phương thức này trả về False.

Lớp java.io.File có thể dùng để tạo ra một file. Để tạo được file thực hiện hai bước sau:

  • Tạo một đối tượng File
  • Gọi phương thức createNewFile , phương thức createNewFile trả về giá trị True nếu tạo file được tạo mới và False nếu file đã tồn tại. Phương thức này cũng ném ra ngoại lệ java.io.IOException khi nó không thể tạo ra các tập tin. Các tập tin được tạo ra là trống rỗng và byte bằng không.

Ví dụ:

  • Tạo tập tin với thuộc tính mặc định
Path file = ...;
try {
    // Tạo tệp trống với quyền mặc định,...
    Files.createFile(file);
} catch (FileAlreadyExistsException x) {
    System.err.format("file named %s" +
        " already exists%n", file);
} catch (IOException x) {
    // Một số loại lỗi khác, chẳng hạn như quyền.
    System.err.format("createFile error: %s%n", x);
}
  • Tạo một file
import java.io.*;
public class Main{
    public static void main(String[] args) throws IOException {
        File file = null;
        boolean isCreat = false;
        try{
            file = new File("D://test.txt");
            //Ở đây mình tạo file trong ổ D
            isCreat = file.createNewFile();
            if (isCreat)
                System.out.print("Da tao file thanh cong!");
            else
                System.out.print("Tao file that bai");
            //file.delete();
        }
        catch (Exception e){
            System.out.print(e);
        }
    }
}

Kết quả

Da tao file thanh cong!

2. Tạo file bằng FileOutputStream

FileOutputStream cũng giống như createNewFile nhưng chỉ khác là khi sử dụng FileOutputStream ta có thể đồng thời viết một số dữ liệu vào nó. Nghĩa là khi tạo file và đồng thời ta muốn thêm luôn một số dữ liệu vào thì ta phải sử dụng FileOutputStream để ghi dữ liệu vào.

Ví dụ:

import java.io.*;
public class Main{
    public static void main(String[] args) throws IOException {
        FileOutputStream file = null;
        String s = "Lap trinh Java tại laptrinhtudau.com";
        byte[] a = s.getBytes(); //ep kieu String ve mang byte
        try{
            file = new FileOutputStream("D://output.txt");
            file.write(a); //ghi mang byte vao file
            System.out.print("Da ghi thanh cong!");
 
        }
        catch (Exception e){
            System.out.print(e);// In lỗi ra màn hình
        }
        finally {
            file.close();//Nếu chương trình lỗi thì đóng file lại
        }
    }
}

Kết quả

Da ghi thanh cong

Sau khi chạy chương trình trên bạn có thể vào ổ đĩa D để xem file output.txt . Nội dung của tập tin là “Lap trinh Java tại laptrinhtudau.com”.

3. Những chú ý khi tạo file

Đầu tiên là điều quan trọng nhất chính là ta phải import vào lớp  java.io.*; Vì nó giống như là một thư viện để chứa các phương thức để thao tác với file vậy

Ta cũng phải thêm throws IOException . Cái này dùng để bỏ ngoại lệ java.io.IOException . Khối lệnh try{} catch{} dùng để bắt lỗi.

Nếu chạy những ví dụ trên 2 lần thì lỗi sẽ xuất hiện và kết quả hiển thị ra sẽ là “Tao file that bai” . Vì đơn giản trong lần đầu chạy nó đã tạo một file có tên đã tạo và lần 2 thì sẽ trả về giá trị False.

Để tạo tệp trong một thư mục cụ thể (yêu cầu quyền), hãy chỉ định đường dẫn của tệp và sử dụng dấu gạch chéo ngược kép để thoát ký tự “\” (đối với Windows). Trên Mac và Linux, ta chỉ có thể viết đường dẫn, như: /Users/name/filename.txt

Ví dụ:

import java.io.File; 
import java.io.IOException;
  
public class CreateFileDir {  
  public static void main(String[] args) {  
    try {  
      File myObj = new File("C:\\Users\\MyName\\filename.txt");  
      if (myObj.createNewFile()) {  
        System.out.println("File created: " + myObj.getName());  
        System.out.println("Absolute path: " + myObj.getAbsolutePath());  
      } else {  
        System.out.println("Tập tin đã tồn tại.");  
      }  
    } catch (IOException e) {
      System.out.println("Đã xảy ra lỗi.");
      e.printStackTrace();  
    }  
  }  
}

Kết quả

File created: filename.txt
Absolute path: C:\Users\MyName\filename.txt