Во время процесса передачи файла, чтобы сделать большие файлы более удобной и быстрой передачей, сжатие обычно используется для сжатия файла перед передачей. Классы дефлятера и зала в пакете java.util.zip в Java предоставляют пользователям функцию сжатия алгоритма дефляции. Ниже приводится реализация сжатия и декомпрессии, написанная сама по себе, и содержимое файла сжатия иллюстрируется в качестве примера. Конкретные методы можно просматривать в API JDK для получения информации.
/ ** * * * @param inputbyte * байтовые массивы, чтобы быть декомпрессированным * @return Decompresed Byte Array * @throhs ioexception */ public static byte [] empress (byte [] inputbyte) бросает ioexception {int len = 0; Inflater Infl = новый накачатель (); Infl.SetInput (inputByte); BytearRayOutputStream Bos = new BytearRayOutputStream (); Byte [] outbyte = новый байт [1024]; попробуйте {while (! inpl.fined ()) {// декомпрессат и выводит декомпрессированный контент в байтовый выходной поток Bos len = inp.Inflate (outbyte); if (len == 0) {break; } bos.write (Outbyte, 0, Len); } infl.end (); } catch (Exception e) {//} наконец {bos.close (); } return bos.tobytearray (); } /*** Сжатие. * * @param inputbyte * byte массив для сжатия * @return Compressed Data * @throhs ioexception */ public static byte [] сжатие (byte [] inputbyte) бросает ioexception {int len = 0; Deflater deffl = new Deflater (); defl.setInput (inputByte); defl.finish (); BytearRayOutputStream Bos = new BytearRayOutputStream (); byte [] outputByte = новый байт [1024]; try {while (! delf.fineed ()) {// Сжатие и вывода сжатого содержимого в байтовый выходной поток bos len = delf.deflate (outputByte); bos.write (outputbyte, 0, len); } delf.end (); } наконец {bos.close (); } return bos.tobytearray (); } public static void main (string [] args) {try {fileInputStream fis = new FileInputStream ("d: //testdeflate.txt"); int len = fis.vailable (); байт [] b = новый байт [len]; fis.read (b); byte [] bd = compress (b); // Для того, чтобы сжатый содержимое передавался в сети, строка кодирования BASE64 обычно используется для кодирования encodestr = base64.encodebase64String (BD); byte [] bi = uncpress (base64.decodebase64 (encodestr)); FileOutputStream fos = new FileOutputStream ("d: //testinflate.txt"); fos.write (bi); fos.flush (); fos.close (); fis.close (); } catch (Exception e) {//}}Вышеупомянутый метод реализации сжатия в Java - это весь контент, которым я поделился с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.