Java - Buat Fail

1. Gambaran keseluruhan

Dalam tutorial ringkas ini, kita akan belajar bagaimana membuat File baru di Java - pertama-tama menggunakan kelas Files dan Path dari NIO, kemudian kelas Java File dan FileOutputStream , Google Jambu, dan akhirnya perpustakaan Apache Commons IO.

Artikel ini adalah sebahagian daripada siri "Java - Back to Basic" di Baeldung.

2. Persediaan

Dalam contohnya, kami akan menentukan pemalar untuk nama fail:

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

Dan kami juga akan menambahkan langkah pembersihan untuk memastikan bahawa fail tersebut belum ada sebelum setiap ujian, dan menghapusnya setelah setiap ujian dijalankan:

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

3. Menggunakan NIO Files.createFile ()

Mulakan dengan menggunakan Files.createFile () kaedah dari pakej Java NIO:

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

Seperti yang anda lihat kodnya masih sangat mudah; kami kini menggunakan antara muka Path baru dan bukannya File lama .

Satu perkara yang perlu diperhatikan di sini ialah API baru menggunakan pengecualian. Sekiranya fail sudah ada, kita tidak perlu lagi memeriksa kod pengembalian. Sebagai gantinya, kami akan mendapat 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 boleh melakukan perkara 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 bahawa fail tidak boleh wujud agar operasi ini berjaya. Sekiranya fail itu wujud, maka operasi createNewFile () akan kembali palsu.

5. Menggunakan FileOutputStream

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

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

Dalam hal ini, file baru dibuat ketika kita membuat objek FileOutputStream . Sekiranya fail dengan nama tertentu sudah ada, fail akan ditimpa . Jika, bagaimanapun, fail yang ada adalah direktori atau fail baru tidak dapat dibuat dengan alasan apa pun, maka kami akan mendapatkan FileNotFoundException .

Selain itu, perhatikan bahawa kami menggunakan pernyataan cuba-dengan-sumber - untuk memastikan bahawa aliran ditutup dengan betul.

6. Menggunakan Jambu Batu

Penyelesaian Jambu batu untuk membuat fail baru adalah pelapik cepat juga:

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

7. Menggunakan Apache Commons IO

Perpustakaan Apache Commons menyediakan kaedah FileUtils.touch () yang menerapkan tingkah laku yang sama dengan utiliti " sentuhan " di Linux.

Oleh itu ia membuat fail kosong baru atau bahkan fail dan jalan penuh ke dalamnya dalam sistem fail:

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

Perhatikan bahawa ini berkelakuan sedikit berbeza daripada contoh sebelumnya: jika fail sudah ada, operasi tidak gagal, ia tidak melakukan apa-apa.

Dan di sana kami memilikinya - 4 cara cepat untuk membuat fail baru di Java.

8. Kesimpulannya

Dalam artikel ini, kami melihat penyelesaian yang berbeza untuk membuat fail di Java. Kami menggunakan kelas yang merupakan sebahagian daripada JDK dan perpustakaan luaran.

Kod untuk contoh boleh didapati di GitHub.