Вы можете программно создать zip-файл и читать zip-файл из Java, нет необходимости представлять его как обычный .zip-файл.
См .: java.io.zip pacakge для получения дополнительной информации и этих других для примеров кода о том, как прочитать / напишите zip, используя java.
Теперь, если вы хотите запретить пользователям разархивировать этот файл, но не хотите усложнять свою жизнь, зашифровывая содержимое или создавая сложный формат, вы можетеэмулировать простой формат интернет-сообщения, аналогичный тому, который используется для электронной почты для прикрепления файлов.
Подробнее о формате интернет-сообщения можно прочитать здесь
быть пользовательским форматом файла, используемым только вашим приложением, так что вы можете сделать это так просто, как вы хотите.Вам просто нужно определить свой формат.
Это может быть:
- Заголовок с именами (и количеством) файлов в этом пакете.
- После списка разделителей (например, * 1026)* некоторый идентификатор, чтобы знать, что вы закончили с этим содержимым)
- Фактическое содержимое
Итак, вы создаете пакет с чем-то вроде следующего:
public void createBundle() {
ZipOutputStream out = ....
writeHeader( out );
writeLimits( out yourFiles );
for( File f : youFiles ) {
writeFileTo( f, out );
}
out.close();
}
Сортировка ...
И в результате получится заархивированный файл с чем-то вроде:
filenames =a.jpg, b.xml, c.ser, d.properties, e.txt
limits.a.jpg =poiurqpoiurqpoeiruqeoiruqproi
limits.b.xml =faklsdjfñaljsdfñalksjdfa
limit.s.ser =sdf09asdf0as9dfasd09fasdfasdflkajsdfñlk
limit.d.properties =adfa0sd98fasdf90asdfaposdifasdfklasdfkñm
limit.e.txt =asdf9asdfaoisdfapsdfñlj
attachments=
<include binary data from a.jpg here>
--poiurqpoiurqpoeiruqeoiruqproi
<include binary data from b.xml here>
--faklsdjfñaljsdfñalksjdfa
и т. Д.
Поскольку это ваш формат файла, вы можете сохранить его простымнасколько это возможно или усложнить вашу жизнь в бесконечности.
Если вам удастся включить библиотеку MIME в свое приложение, это может сэкономить вам много времени.
Наконец, если вы хотите добавить дополнительную безопасность, вы должны зашифровать файл, которыйВ конце концов, это не так сложно, проблема в том, что, если вы также отправите код шифрования, ваши пользователи могут узнать об этом и декомпилировать их, чтобы узнать.Но хороший механизм шифрования предотвратит это.
Таким образом, в зависимости от ваших потребностей, вы можете перейти от простого почтового индекса, почтового индекса с пользовательским форматом, почтового индекса со сложным пользовательским форматом или почтового индекса с пользовательским сложным зашифрованнымформат.
Поскольку это широко, вы можете спросить о конкретных частях здесь: https://stackoverflow.com/questions/ask