Java - Buat File

1. Ikhtisar

Dalam tutorial singkat ini, kita akan belajar cara membuat File baru di Java - pertama menggunakan kelas Files and Path dari NIO, lalu kelas Java File dan FileOutputStream , Google Guava, dan terakhir library Apache Commons IO.

Artikel ini adalah bagian dari seri “Java - Kembali ke Dasar” di Baeldung.

2. Penyiapan

Dalam contoh, kami akan menentukan konstanta untuk nama file:

private final String FILE_NAME = "src/test/resources/fileToCreate.txt";

Dan kami juga akan menambahkan langkah pembersihan untuk memastikan bahwa file belum ada sebelum setiap pengujian, dan untuk menghapusnya setelah setiap pengujian dijalankan:

@AfterEach @BeforeEach public void cleanUpFiles() { File targetFile = new File(FILE_NAME); targetFile.delete(); }

3. Menggunakan NIO Files.createFile ()

Mari kita mulai dengan menggunakan Files.createFile () metode dari paket Java NIO:

@Test public void givenUsingNio_whenCreatingFile_thenCorrect() throws IOException { Path newFilePath = Paths.get(FILE_NAME); Files.createFile(newFilePath); }

Seperti yang Anda lihat, kodenya masih sangat sederhana; kami sekarang menggunakan antarmuka Path baru, bukan File lama .

Satu hal yang perlu diperhatikan di sini adalah bahwa API baru memanfaatkan pengecualian dengan baik. Jika file sudah ada, kami tidak lagi harus memeriksa kode pengembalian. Sebagai gantinya, kita akan mendapatkan FileAlreadyExistsException :

java.nio.file.FileAlreadyExistsException: src/test/resources/fileToCreate.txt at sun.n.f.WindowsException.translateToIOException(WindowsException.java:81)

4. Menggunakan File.createNewFile ()

Sekarang mari kita lihat bagaimana kita dapat melakukan hal yang sama menggunakan kelas java.io.File :

@Test public void givenUsingFile_whenCreatingFile_thenCorrect() throws IOException { File newFile = new File(FILE_NAME); boolean success = newFile.createNewFile(); assertTrue(success); }

Perhatikan bahwa file tersebut tidak boleh ada agar operasi ini berhasil. Jika file tersebut ada, maka operasi createNewFile () akan mengembalikan nilai false.

5. Menggunakan FileOutputStream

Cara lain untuk membuat file baru adalah dengan menggunakan java.io.FileOutputStream :

@Test public void givenUsingFileOutputStream_whenCreatingFile_thenCorrect() throws IOException { try(FileOutputStream fileOutputStream = new FileOutputStream(FILE_NAME)){ } }

Dalam kasus ini, file baru dibuat saat kita membuat instance objek FileOutputStream . Jika file dengan nama tertentu sudah ada, itu akan ditimpa . Namun, jika file yang sudah ada adalah direktori atau file baru tidak dapat dibuat karena alasan apa pun, maka kita akan mendapatkan FileNotFoundException .

Selain itu, perhatikan bahwa kami menggunakan pernyataan coba-dengan-sumber daya - untuk memastikan bahwa aliran ditutup dengan benar.

6. Menggunakan Jambu Biji

Solusi Guava untuk membuat file baru juga sangat cepat:

@Test public void givenUsingGuava_whenCreatingFile_thenCorrect() throws IOException { com.google.common.io.Files.touch(new File(FILE_NAME)); }

7. Menggunakan Apache Commons IO

Pustaka Apache Commons menyediakan metode FileUtils.touch () yang mengimplementasikan perilaku yang sama seperti utilitas " sentuh " di Linux.

Oleh karena itu, ini membuat file kosong baru atau bahkan file dan jalur lengkapnya dalam sistem file:

@Test public void givenUsingCommonsIo_whenCreatingFile_thenCorrect() throws IOException { FileUtils.touch(new File(FILE_NAME)); }

Perhatikan bahwa ini berperilaku sedikit berbeda dari contoh sebelumnya: jika file sudah ada, operasi tidak gagal, itu tidak melakukan apa-apa.

Dan begitulah - 4 cara cepat untuk membuat file baru di Java.

8. Kesimpulan

Pada artikel ini, kami melihat berbagai solusi untuk membuat file di Java. Kami menggunakan kelas yang merupakan bagian dari JDK dan perpustakaan eksternal.

Kode untuk contoh tersedia di GitHub.