JAR ファイル内のファイルへのアクセスと変更
JAR 内のファイルへのデータの保存と取得は、多くのアプリケーションにとって共通の要件です。 Class.getResourceAsStream() を使用して JAR からファイルを読み取るのは簡単ですが、JAR 内のファイルに書き込むには課題があります。
JAR ファイルへの書き込みの制限
基本的な制限は、JAR ファイルの性質にあります。 JAR ファイルは読み取り専用のアーカイブであり、コンパイル済みコードのパッケージ化と配布用に最適化されています。コンパイル後に JAR ファイルに加えられた変更は保持されません。したがって、JAR 内に保存されているファイルに直接書き込むことはできません。
代替アプローチ
推奨されるアプローチは、デフォルトのデータ ファイルを JAR 内に保存して処理することです。別途変更します。 JAR ファイルを変更する代わりに、ローカル ファイル システム上に 2 番目の場所を作成して、変更されたデータまたはユーザー固有のデータを保存します。
ファイルにアクセスするとき、アプリケーションは最初に、変更されたバージョンが 2 番目の場所に存在するかどうかを確認する必要があります。存在する場合、そのファイルが使用されます。それ以外の場合は、JAR からのデフォルト ファイルがロードされます。この設計により、JAR パッケージの整合性を維持しながらカスタマイズと設定を保存できます。
例
「」という名前のファイルにユーザー設定を保存するアプリケーションを考えてみましょう。設定.xml」。デフォルトの設定ファイルは JAR 内に埋め込むことができます。アプリケーションが起動すると、変更されたバージョンの「preferences.xml」がユーザーのホーム ディレクトリの特定のサブディレクトリに存在するかどうかが確認されます。存在する場合、その変更されたファイルがロードされます。それ以外の場合は、JAR のデフォルト設定ファイルが使用されます。
このアプローチにより、JAR ファイルは変更されずに、ユーザー固有のデータが永続的に保存されます。これは、JAR 内のファイルに直接書き込もうとするよりも推奨される代替手段です。
以上がJAR アーカイブ内のファイル変更を効率的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。