В примере этой статьи рассказывается о методе чтения данных из файла JAR Java. Поделитесь этим для всех для вашей ссылки. Специфика заключается в следующем:
Файлы Java Archives (JAR) основаны на решении Java Technology Packaging. Они позволяют разработчикам упаковать весь сопутствующий контент (.class, изображения, звук, файлы поддержки и т. Д.) В один файл. Формат файла JAR поддерживает сжатие, аутентификацию и версии, а также многие другие функции.
Это сложно получить содержимое файла, содержащее в файле JAR, но это невозможно. Эта техника расскажет вам, как получить файл из файла JAR. Сначала мы получим каталог файлов в этом файле JAR, а затем прочитаем указанный файл.
Если вы знакомы с общим форматом ZIP, вы обнаружите, что файл JAR не сильно отличается от него. JAR File предоставляет метод упаковки нескольких файлов в один файл, и каждый упакованный файл может быть сжат отдельно. Файлы JAR могут добавить вещь, называемую Manifest, что позволяет разработчикам добавлять другую информацию, связанную с контентом. Например, Manifest может указать, какие файлы в файле JAR для запуска запуска приложений или указать версию библиотеки.
Java 2 SDK Standard Edition предоставляет инструмент JAR, который вы можете прочитать и написать файлы JAR через него. Тогда, может быть, вы хотите прочитать и написать файлы JAR в вашей программе. (Этот метод включает только содержание файлов чтения JAR в программе.) Очень счастлив, вы можете сделать это, и вам не нужно рассматривать проблему декомпрессии, потому что библиотека классов помогла вам справиться с этим. Классы, которые вы должны использовать, находятся в java.util.jar. Основным классом, который будет использоваться здесь, является класс Jarfile, который является самим файлом .jar. Каждый файл цитируется Jarentry.
В начале, передайте параметр, чтобы создать экземпляр Jarfile для конструктора Jarfile.
Копировать код кода следующим образом: jarfile jarfile = new jarfile ("thefile.jar");
Или скопируйте код кода следующим образом: file file = new File ("thefile.jar");
Jarfile jarfile = new jarfile (файл);
Он также имеет некоторые другие конструкторы, которые поддерживают проверку личности и отмечают файлы для удаления. Однако эти конструкторы не будут участвовать здесь.
После того, как вы получите ссылку на файл JAR, вы можете прочитать каталог его контента. Метод JARFILE в записи возвращает объект перечисления всех записей.
// Переводчик Примечание: Enum - это ключевое слово в Java 5.0, поэтому этот случай должен составить сбой в 5.0. enum = jarfile.entries ();
Как упоминалось ранее, каждый человек является ярентрией. У этого класса есть некоторые методы, такие как GetName, Getize и GetCompressetize.
Давайте приведем нам пример, как использовать эти функции в программе. В следующей программе показан список содержания файла JAR и имен, размер и размер сжатия. (Это похоже на команду JAR с параметрами «T» и «V».)
Импорт java.io.*; System.out.println («Пожалуйста, предоставьте jar filename»); HasmoreElements ()) {Process (enum.nextelement ());}} Частный статический процесс (Object obj) {jarentry entry = (jarentry) obj; );
Если вы используете 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 0javax/crypto/0 0javax/crypto/interfaces/0javax/crypto/0 0. Dhkey.class 209 185javax/crypto/interfaces/dhpublickey.class 265 215javax/crypto/interfaces/dhprivatekey.class 267 215Javax/Crypto/Into/Into Erfaces/Pbekey.class 268 224Javax/Crypto/SecretKey.class 167 155 ...
Обратите внимание, что верхняя часть входного содержимого содержит линии мета-инф, которая представляет собой информацию о Menifest и проверке безопасности. Элемент с размером 0 - это не файл, а каталог.
Чтобы по -настоящему прочитать содержимое файла из файла JAR, вы должны получить соответствующую цель ввода inputStream. Это отличается от Jarentry. Jarentry включает только информацию о записи, но не включает фактический контент. Это очень похоже на разницу между File и FileInputStream. Когда вы посещаете файл, вы никогда не откроете соответствующий файл. Вот как получить inputstream от записи:
Копировать код следующим образом: inputStream input = jarfile.getInputStream (entry);
После получения потока ввода вам просто нужно прочитать его, как читать другие потоки. Если это текстовый поток, не забудьте использовать читателя, чтобы получить символы из потока. Для байтового потока, таких как картинки, вы должны прочитать его напрямую.
Следующая программа демонстрирует контент из файла JAR. При запуске программы необходимо указать имя файла для чтения из файла JAR.
Импорт java.io.*; Пожалуйста, предоставьте имя файла и файла JAR для чтения "); System.Exit (-1);} jarfile jarfile = new jarfile (args [0]); jarentry intrint = jarfile.getjarentry]); inputstream = jarfile .getInputStream (entry. ); line = reader.readline ())!
Предположим, у вас есть файл JAR с именем MyFiles.jar, один из которых называется текстовым файлом spuder.txt, а затем предположим, что pider.txt содержит следующий текст:
Шипси -паук.
Запустите следующую команду, чтобы отобразить содержимое текстового файла в файле JAR:
Код кода копирования следующим образом: java jarread myfiles.jar spider.txt
Есть надежда, что эта статья полезна для дизайна программы Java каждого.