この記事の例は、JAVAのJARファイルからデータを読み取る方法を伝えています。あなたの参照のために全員のためにそれを共有してください。詳細は次のとおりです。
Javaアーカイブ(JAR)ファイルは、Javaテクノロジーパッケージングソリューションに基づいています。開発者は、関連するすべてのコンテンツ(。クラス、写真、サウンド、サポートファイルなど)を単一のファイルに詰め込むことができます。 JARファイル形式は、圧縮、認証、バージョン、その他多くの機能をサポートしています。
JARファイルに含まれるファイルコンテンツを取得するのは難しいことですが、不可能です。この手法では、JARファイルからファイルを取得する方法がわかります。最初にこのJARファイルのファイルディレクトリを取得し、指定されたファイルを読み取ります。
一般的なZIP形式に精通している場合、JARファイルはそれとそれほど変わらないことがわかります。 JARファイルは、複数のファイルを1つのファイルにパックする方法を提供し、パッケージ化された各ファイルを個別に圧縮できます。 JARファイルは、Manifestと呼ばれるものを追加できます。これにより、開発者はコンテンツに関連する他の情報を追加できます。たとえば、マニフェストは、JARファイル内のファイルを示してアプリケーションの実行を開始するか、ライブラリのバージョンを指定できます。
Java 2 SDK Standard Editionは、JARファイルを介してJARファイルを読み書きできるJARツールを提供します。その後、プログラム内のJARファイルを読み取り、書きたいと思うかもしれません。 (この手法には、プログラム内のJARファイルを読むコンテンツのみが含まれます。)非常に幸せで、あなたはそれを行うことができます、そして、クラスライブラリがあなたがそれを処理するのに役立つので、あなたは減圧の問題を考慮する必要はありません。使用する必要があるクラスはjava.util.jarにあります。ここで使用するメインクラスは、Jarfileクラスで、.jarファイル自体です。各ファイルはJarentryによって引用されます。
最初は、パラメーターを作成して、Jarfileのコンストラクターを作成します。
コードコードを次のようにコピーします。JarfileJarfile= new Jarfile( "thefile.jar");
または、次のようにコードコードをコピーします。filefile = new file( "thefile.jar");
jarfile jarfile = new Jarfile(file);
また、ID検証をサポートし、削除するファイルをマークする他のコンストラクターもあります。ただし、これらのコンストラクターはここには関与しません。
JARファイルへの参照を取得したら、そのコンテンツのディレクトリを読むことができます。 Jarfileのエントリメソッドは、すべてのエントリの列挙オブジェクトを返します。名前やサイズなどのマニフェストファイルから属性、認証情報、その他の情報を取得できます。
//翻訳者メモ:enumはJava 5.0のキーワードであるため、このケースは5.0で故障をコンパイルする必要があります。 enum = jarfile.entries();
前述のように、各個人はjarentryです。このクラスには、GetName、GetSize、GetCompressetsizeなどのいくつかの方法があります。
プログラムでこれらの機能を使用する方法の例を教えてください。次のプログラムは、JARファイルのコンテンツのリスト、および圧縮の名前、サイズ、サイズを示しています。 (これは、「T」と「V」パラメーターを使用したJARコマンドに似ています。)
import java.io.*; system.out.println(jar filenameを提供してください ");} jarfile = new Jarfile(args [0]); hasmoreelements()){enum.nextelement();}} private static void process(jarentry entry =(jarentry)obj; ); system.out.println(name + "" + size + "" + comprestidsize);}}
jce.jarをJ2SE 1.4.1で使用して上記のJardirプログラムをテストする場合、次のような出力を表示する必要があります(より多くのファイルを以下に表示する必要があります...):より多くのファイル:より多くのファイル):より多くのファイル::より多くのファイル:その他のファイル):
Meta-inf/manifest.mf 5315 1910meta-inf/4jcejars.sf 5368 1958meta-inf/4jcejars.dsa 2207 1503meta-inf/0 2javax/0 dhkey.class 209 185javax/crypto/interfaces/dhpublickey.class 265 215javax/crypto/interfaces/dhprivatekey.class 267 215javax/into/into/into erfaces/pbekey.class 268 224javax/crypto/crypto/secraskey.class 167 155 ...
入力コンテンツの最上部には、メニットおよびセキュリティ検証情報であるMeta-INFの行が含まれていることに注意してください。 0のサイズのアイテムはファイルではなく、ディレクトリです。
JARファイルからファイルのコンテンツを本当に読み取るには、対応するエントリ目的入力ストリームを取得する必要があります。これはJarentryとは異なります。 Jarentryにはエントリ情報のみが含まれていますが、実際のコンテンツは含まれていません。これは、ファイルとFileInputStrateamの違いに非常に似ています。ファイルのみにアクセスすると、対応するファイルが表示されることはありません。エントリから入力ストリームを取得する方法は次のとおりです。
コードコードを次のようにコピーします:inputstream input = jarfile.getInputStream(entry);
入力ストリームを取得した後、他のストリームを読むように読む必要があります。テキストフローの場合は、読者を使用してストリームからキャラクターを取得することを忘れないでください。写真などのバイトフローの場合、直接読む必要があります。
次のプログラムは、JARファイルからのコンテンツを示しています。プログラムを実行する場合、JARファイルから読み取るファイル名を指定する必要があります。
Import java.io.*; java.util.jar。*; jarファイル名とファイルを提供して、 "); system.exit(-1);} jarfile jarfile = new jarfile(args [0]); jarentry entry = jarfile.getjarentry]); ); jarfile.close(); line = reader.readline())!
myfiles.jarというjarファイルがあるとします。そのうちの1つはspider.txtテキストファイルと呼ばれ、次のテキストが含まれていると仮定します。
Itsy Bitsy Spiderが水を駆け上がって雨が降って雨が降り、クモを洗浄しました
次のコマンドを実行して、JARファイルにテキストファイルの内容を表示します。
コードコードを次のようにコピーします:Java jarread myfiles.jar spider.txt
この記事がすべての人のJavaプログラムのデザインに役立つことが期待されています。