Beberapa skenario mengharuskan Anda untuk menyalin file di Java. Anda mungkin membuat skrip sederhana untuk mengotomatiskan proses untuk pengelola file. Anda bahkan bisa menulis aplikasi lengkap yang bekerja dengan file.

Ada banyak cara Anda dapat menyalin file, tergantung pada kinerja yang diperlukan, kesederhanaan, atau bahkan versi Java yang Anda gunakan.

Cara Menyalin File Menggunakan FileInputStream dan FileOutputStream

Metode ini bekerja dengan membaca secara manual setiap byte data dari file, dan menulisnya ke tujuan baru. Berbeda dengan metode Files.copy di bawah ini, Anda dapat menggunakan metode ini untuk semua versi Java, termasuk Java 6 dan sebelumnya.

Ia menggunakan kelas FileInputStream untuk membaca byte dari file sumber, dan FileOutputStream untuk menulis byte ke tujuan.

  1. Buat file di mana saja di komputer Anda yang disebut "SimpleScript.java".
  2. Buka file dalam editor teks atau IDE, dan salin kode dasar berikut ke aplikasi.
    impor java.io. IOException;

    kelasSkrip Sederhana{
    publikstatisruang kosongutama(String argumen[])melempar Pengecualian IO {
    // Kode Anda di sini
    }
    }

  3. instagram viewer
  4. Impor kelas Input Stream dan Output Stream tambahan ini di bagian atas file, tepat setelah pernyataan impor pertama.
    impor java.io. Mengajukan;
    impor java.io. MasukanStream;
    impor java.io. Aliran Keluaran;
    impor java.io. FileInputStream;
    impor java.io. FileOutputStream;
  5. Buat file baru bernama "Copy-File-1.txt", di folder yang sama dengan file SimpleScript.java Anda. Tambahkan konten tertulis apa pun di dalam file.
  6. Di folder yang sama, buat juga direktori baru bernama "Destination". Tujuannya adalah untuk menyalin file "Copy-File-1.txt" ke folder baru.
  7. Di dalam fungsi utama kelas, gunakan kelas File untuk membuat dua objek file baru. Sumber, yang akan menjadi file yang ingin Anda salin, dan tujuan, yang akan menjadi tempat Anda ingin menyalin file. Jika file tujuan tidak ada, program Anda akan membuat yang baru.
    kelasSkrip Sederhana{ 
    publikstatisruang kosongutama(String argumen[])melempar Pengecualian IO {
    // cara pertama untuk menyalin file
    Sumber file = baru File("Salin-File-1.txt");
    Tujuan file = baru File("Tujuan/Salin-File-1.txt");
    }
    }
  8. Setelah itu, buat objek InputStream dan OutputStream.
    InputStream masukan = batal;
    Keluaran Aliran keluaran = batal;
  9. Gunakan aliran input untuk membaca data dalam byte, dan aliran output untuk menulis data ke lokasi baru.
    mencoba {
    // Buat objek FileInputStream dan FileOutputStream
    masukan = baru FileInputStream (sumber);
    keluaran = baru FileOutputStream (tujuan);
    byte[] buf = barubyte[1024];
    ke dalam byteBaca;

    // Tulis byte ke tujuan
    ketika ((bytesRead = input.read (buf)) > 0) {
    keluaran.tulis (buf, 0, byteBaca);
    }
    } menangkap (IOException e) {
    e.printStackTrace();
    System.out.println("Tidak dapat menyalin file ke tujuan: " + destination.getPath() + ". Memeriksa jika folder atau file sudah ada.");
    } akhirnya {
    // Tutup aliran
    jika (masukkan != batal) {
    masukan.tutup();
    }

    jika (keluaran != batal) {
    keluaran.tutup();
    }
    }

    System.out.println("File disalin");

  10. Untuk menjalankan skrip, buka baris perintah. Arahkan ke folder tempat Anda menyimpan file Java menggunakan perintah cd di Prompt Perintah Windows atau Terminal Mac.
    CD Desktop
  11. Untuk mengkompilasi skrip, simpan file Java dan jalankan Javac perintah di baris perintah:
    javac SimpleScript.java
  12. Untuk menjalankan skrip, gunakan Jawa memerintah:
    Java SimpleScript
    Anda akan melihat satu baris output tanpa kesalahan:
  13. Arahkan ke folder "Tujuan" Anda untuk melihat file yang disalin.
  14. Buka file untuk melihat konten, yang disalin program Anda dari file asli.

Cara Menyalin File Menggunakan Files.copy

Jika Anda menggunakan Java 7 atau yang lebih baru, Anda dapat menggunakan metode Files.copy. Metode ini umumnya merupakan implementasi yang lebih sederhana. Menurut Dokumentasi Java, ada beberapa kelebihan untuk fungsi tersebut.

Misalnya, metode Files.copy juga dapat menggunakan aliran input untuk menyalin file dari satu lokasi ke lokasi lain, tetapi melalui metode yang menggunakan lebih sedikit kode. Anda juga dapat menggunakan Paths, atau menentukan sendiri bagaimana metode yang Anda inginkan untuk menyalin file Anda.

  1. Buat file baru bernama "Copy-File-2.txt", di folder yang sama dengan file SimpleScript.java Anda. Tambahkan konten tertulis apa pun di dalam file.
  2. Di bagian atas file, tambahkan impor untuk file "java.nio.file. Paths" dan "java.nio.file. Kelas file".
    impor java.nio.file. jalan;
    impor java.nio.file. File;
  3. Tambahkan dua string, yang mewakili jalur file relatif untuk file sumber dan tujuan. Gunakan metode Files.copy, yang akan menangani logika untuk menyalin file ke tujuan.
    String copySource = "Salin-File-2.txt";
    String copyDestination = "Tujuan/Salin-File-2.txt";

    mencoba {
    Files.copy (Paths.get (copySource), Paths.get (copyDestination));
    } menangkap (Pengecualian e) {
    System.out.println("Tidak dapat menyalin file ke tujuan: " + copyDestination + ". Memeriksa jika folder atau file sudah ada.");
    }
    System.out.println("2nd File disalin");

  4. Jalankan skrip menggunakan perintah Javac dan Java.
  5. Arahkan ke folder "Tujuan" Anda untuk melihat file yang disalin.

Cara Menyalin File Menggunakan FileChannel.transferTo()

Menurut Dokumentasi Java, metode ini berpotensi menjadi cara yang lebih cepat untuk menyalin file. Namun, ini akan tergantung pada cara Anda mengimplementasikan fungsi tersebut.

  1. Buat file baru bernama "Copy-File-3.txt", di folder yang sama dengan file SimpleScript.java Anda. Tambahkan beberapa contoh konten ke file ini.
  2. Di bagian atas SimpleScript.java, impor file "java.nio.channels. FileChannel" bersama tiga kelas terkait file umum sebelumnya dari paket io.
    impor java.io. Mengajukan;
    impor java.io. FileInputStream;
    impor java.io. FileOutputStream;
    impor java.nio.channels. FileChannel;
  3. Buat objek file untuk sumber dan tujuan, dan gunakan untuk membuat Aliran Input dan Aliran Output.
    File src = baru File("Salin-File-3.txt");
    File dst = baru File("Tujuan/Salin-File-3.txt");
    FileInputStream inStream = baru FileInputStream (src);
    FileOutputStream outStream = baru FileOutputStream (dst);
  4. Gunakan metode TransferTo dari kelas FileChannel untuk menyalin file ke tujuannya.
    mencoba {
    FileChannel inChannel = inStream.getChannel();
    FileChannel outChannel = outStream.getChannel();
    inChannel.transferKe(0, inChannel.size(), outChannel);
    } menangkap (Pengecualian e) {
    System.out.println("Tidak dapat menyalin file ke tujuan: " + dst.getPath() + ". Memeriksa jika folder atau file sudah ada.");
    } akhirnya {
    // Tutup aliran
    inStream.close();
    outStream.close();
    }
    System.out.println("3File rd disalin");
  5. Jalankan skrip menggunakan perintah Javac dan Java.
  6. Arahkan ke folder "Tujuan" Anda untuk melihat file yang disalin.

Menyalin File di Java Barulah Awal

Ada banyak cara untuk menyalin file di Java. Tiga cara yang mungkin termasuk menggunakan metode aliran tradisional, metode Files.copy, atau metode transferTo.

Ada banyak operasi pengelola file lain yang dapat Anda lakukan menggunakan Java. Beberapa di antaranya termasuk memindahkan file, menghapus file, atau membuat file zip. Ini dapat berguna untuk dipelajari jika Anda perlu mengotomatiskan proses tertentu di pengelola file.