Contoh artikel ini menceritakan metode membaca data dari file jar java. Bagikan untuk semua orang untuk referensi Anda. Spesifiknya adalah sebagai berikut:
File Java Archives (JAR) didasarkan pada solusi pengemasan teknologi Java. Mereka memungkinkan pengembang untuk mengemas semua konten terkait (.class, gambar, suara, file dukungan, dll.) Ke dalam satu file. Format file jar mendukung kompresi, otentikasi dan versi, dan banyak fitur lainnya.
Adalah hal yang sulit untuk mendapatkan konten file yang terkandung dalam file jar, tetapi tidak mungkin. Teknik ini akan memberi tahu Anda cara mendapatkan file dari file jar. Kami akan mendapatkan direktori file dalam file jar ini terlebih dahulu, dan kemudian membaca file yang ditentukan.
Jika Anda terbiasa dengan format zip umum, Anda akan menemukan bahwa file jar tidak jauh berbeda darinya. File JAR menyediakan metode untuk mengemas beberapa file ke satu file, dan setiap file yang dikemas dapat dikompresi secara terpisah. File JAR dapat menambahkan sesuatu yang disebut Manifest, yang memungkinkan pengembang untuk menambahkan informasi lain yang terkait dengan konten. Misalnya, Manifest dapat menunjukkan file mana dalam file JAR untuk mulai menjalankan aplikasi, atau menentukan versi perpustakaan.
Java 2 SDK Standard Edition menyediakan alat jar yang dapat Anda baca dan tulis file JAR melaluinya. Kemudian, mungkin Anda ingin membaca dan menulis file jar dalam program Anda. (Teknik ini hanya melibatkan konten membaca file jar dalam program.) Sangat senang, Anda dapat melakukannya, dan Anda tidak perlu mempertimbangkan masalah dekompresi, karena perpustakaan kelas telah membantu Anda menanganinya. Kelas yang perlu Anda gunakan ada di java.util.jar. Kelas utama yang akan digunakan di sini adalah kelas Jarfile, yang merupakan file .jar itu sendiri. Setiap file dikutip oleh Jarentry.
Pada awalnya, lulus parameter untuk membuat instance Jarfile untuk konstruktor Jarfile.
Salin kode kode sebagai berikut: Jarfile Jarfile = Jarfile baru ("thefile.jar");
Atau salin kode kode sebagai berikut: file file = file baru ("thefile.jar");
Jarfile Jarfile = New Jarfile (file);
Ini juga memiliki beberapa konstruktor lain yang mendukung verifikasi identitas dan menandai file untuk dihapus. Namun, konstruktor ini tidak akan terlibat di sini.
Setelah Anda mendapatkan referensi ke file jar, Anda dapat membaca direktori kontennya. Metode entri Jarfile mengembalikan objek enumerasi dari semua entri.
// Catatan Penerjemah: Enum adalah kata kunci di Java 5.0, jadi kasus ini harus mengkompilasi kegagalan dalam 5.0. enum = jarfile.entries ();
Seperti yang disebutkan sebelumnya, masing -masing individu adalah jaring. Kelas ini memiliki beberapa metode seperti GetName, GetSize, dan GetCompressetsize.
Mari kita beri kami contoh cara menggunakan fitur -fitur ini dalam program ini. Program berikut menunjukkan daftar konten file JAR dan nama, ukuran, dan ukuran kompresi. (Ini mirip dengan perintah JAR dengan parameter "T" dan "V".)
Impor Java.io.*; System.out.println ("Harap berikan nama file jar"); hasmoreElements ()) {Process (enum.NextElement ());}} Private static void Process (objek OBJ) {JarEntry Entry = (JarEntry) OBJ; );
Jika Anda menggunakan JCE.Jar di J2SE 1.4.1 untuk menguji program Jardir di atas, Anda akan melihat output seperti yang berikut ini (lebih banyak file harus ditampilkan pada yang berikut ...): Lebih Banyak File: Lebih Banyak File): Lebih Banyak File: lebih banyak file):
META-INF/MANIFEST.MF 5315 1910META-INF/4JCEJARS.SF 5368 1958META-INF/4JCEJARS.DSA 2207 1503META-INF/ 0 2javax/ 0 0javax/crypto/ 0 0javax/crypto/interfaces/ 0 0javax/crypto/interfaces/ Dhkey.class 209 185Javax/crypto/antarmuka/dhpublickey.class 265 215javax/crypto/antarmuka/dhprivate.class 267 215javax/crypto/ke/ke erfaces/pbey.class 268 224javax/crypto/Secretkey. 167 ...
Perhatikan bahwa bagian atas konten input berisi garis meta-inf, yang merupakan informasi verifikasi keamanan dan keamanan. Item dengan ukuran 0 bukan file, tetapi direktori.
Untuk benar -benar membaca konten file dari file JAR, Anda harus mendapatkan inputStream tujuan entri yang sesuai. Ini berbeda dari Jarentry. Jarentry hanya menyertakan informasi entri, tetapi tidak termasuk konten aktual. Ini sangat mirip dengan perbedaan antara File dan FileInputStrateam. Ketika Anda hanya mengunjungi file, Anda tidak akan pernah membuka file yang sesuai. Inilah cara mendapatkan inputstream dari entri:
Salin kode kode sebagai berikut: inputStream input = jarfile.getInputStream (entri);
Setelah mendapatkan aliran input, Anda hanya perlu membacanya seperti membaca aliran lain. Jika itu adalah aliran teks, ingatlah untuk menggunakan pembaca untuk mendapatkan karakter dari aliran. Untuk aliran byte, seperti gambar, Anda harus membacanya secara langsung.
Program berikut menunjukkan konten dari file jar. Saat menjalankan program, Anda perlu menentukan nama file untuk dibaca dari file JAR.
Impor Java.io.*; Harap berikan nama file jar dan file yang harus dibaca "); System.exit (-1);} jarfile jarfile = Jarfile baru (args [0]); entri jarfile = Jarfile.getjarentry]); inputStream input = Jarfile .getInputStream (entrigarentry]); inputStream input = Jarfile .getInputStream (entriMenStry]); inputStream input = Jarfile .getInputStream (entriMen ); line = reader.readline ())! = null) {System.out.println (line);} reader.close ();}
Misalkan Anda memiliki file jar yang disebut myfiles.jar, salah satunya disebut file teks spider.txt, dan kemudian asumsikan bahwa pider.txt berisi teks berikut:
Laba -laba Bitsy Itsy berlari ke atas Spoutdown air datang hujan dan mencuci laba -laba keluar
Jalankan perintah berikut untuk menampilkan konten file teks dalam file JAR:
Salin kode kode sebagai berikut: java jarread myfiles.jar spider.txt
Diharapkan bahwa artikel ini bermanfaat untuk desain program Java semua orang.