Cet article a partagé des exemples de fichiers compressés Java et d'images téléchargées pour votre référence. Le contenu spécifique est le suivant
Page principale index.xml
<% @ page Language = "Java" import = "java.util. *" "Pageencoding =" utf-8 "%> <html> <adread> <ititle> Homepage du projet </ title> </-head> <body> <h2> Homepage </h2> <h2> Changsha, Hunan </h2> <h3> Publish Method One ... src = "images / 1.jpg" /> <! - Path relatif -> <br/> <! - Path absolu -> <a href = "/ helloweb / gzip"> Page Content Compression Demonstration - Gzip </a> <br/> <br/> <a href = "down"> Télécharger des images </a> <br/> <br/> </ body> </ html>
Fichier compressé: gzipservlet.java
Ce n'est que lorsque le fichier compressé est suffisamment grand que la surcharge de compression peut être décalée et que la compression est effectivement compressée. Sinon, la taille du fichier après compression d'un très petit fichier deviendra plus grande.
Package CN.hncu.servlet; Importer java.io.bytearrayoutputStream; import java.io.ioexception; import java.io.outputstream; import java.util.zip.gzipOutStream; import javax.servlet.servlet.servletException; import javax.servlet.http.httplets; javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletResponse; public class gzipservlet étend httpservlet {@Override Protected Void Service str = "Vuttyjhgyurchunan Changsha Surdivsfanhui wuhu 890-80897 Peut-être que plus V sera habitué à ce TVSDUVGKJXHVNXZC.NLKCJSDFPEIFNIUQ4EYY8F048EYYSIYLI" + "skchkxhckxzzncnxclkjhasliduhasduisuugdlisgdlkjadhlksjhdlkasjdhasklhdlkjsahashdkdjhkdjshkldsjhfkljd"; // byte src [] = str.getbytes (); // utilisation de la plate-forme (gb), str.getbytes (); // utilisation de la plate-forme (gb), Str.getbytes (); // utilise la plate-forme (GB), Str.getBytes (); // Utiliser la plate-forme (GB), Str.getbytes (); // Utiliser la plate-forme (GB) n'est pas ISO-8859-1 octet src [] = str.getBytes ("utf-8"); // Les données envoyées au navigateur en arrière-plan ne sont pas reconnues par le navigateur - qui les téléchargent, et il est brouillé de l'ouvrir avec du texte. Par conséquent, vous devez définir le protocole byteArrayOutputStream Bout = new ByteArrayOutputStream (); // Memory Stream GZIPOutputStream Gout = new GZIPOutputStream (Bout); gout.write (src); // Appuyez sur SRC pour faire face à gout.close (); // Cache Flash Byte dest [] = Bout.ToByTearray (); // Src ==> dest // Résumé: Lors de la sortie des données compressées, vous devez définir l'en-tête de réponse resp.setheDer ("Content-Encoding", "gzip"); // Après avoir défini l'en-tête de réponse, vous n'avez pas besoin de le télécharger et ne pas brououler resp.setContentType ("text / html; charset = utf-8"); // assurez-vous de définir str.getbyte pour encoder // lorsque le fichier est très petit: la compression n'a pas d'effet, ce sera un cumbersome (ne peut pas décoller la précédente pour la compression) .. System.out.println ("Longueur avant la compression:" + src.Length); System.out.println ("Longueur après compression:" + dest.Length); // balayez les données compressées vers Dest OutputStream out = resp.getOutputStream (); // resp.getWriter (); // out.write (src); out.write (dest); }}Téléchargez l'image: Downservlet .Java (l'image est sous le répertoire SRC)
Package cn.hncu.servlet; import java.io.ioexception; import java.io.inputStream; import java.io.outputstream; import java.net.urlencoder; import javax.servlet.servlet.servletException; import javax.servlet.http.httpservlet; import; javax.servlet.http.httpservletRequest; Importer javax.servlet.http.httpservletRequest; Import Javax.servlet.http.httpservrasser resp) lève ServletException, ioException {// Protocol Set 1 resp.setContentType ("Application / Force-Download"); // Utilisez l'application qui télécharge le fichier par défaut pour télécharger String filename = "4.jpg"; // Si le nom du fichier est chinois - tel que: ma photo.jpg //filename=urlencoder.encode(filename ,"utf-8") ;//encode filename. S'il n'est pas codé, le nom de fichier affiché dans le navigateur sera brouillé.InputStream dans = Downservlet.class.getClassloader (). GetResourCeasStream (FileName); // Paramètre de protocole 2 resp.sethEader ("Content-Disposition", "pièce jointe; filename = / '" + filename + "/'"); // dire au navigateur le nom de fichier téléchargé actuel //downservlet.class Lieu: "d: /apache-tomcat-7.0.30/webapps/heldeb/web-inff/classes/cn/whcu/Server Emplacement de l'image: "d: /apache-tomcat-7.0.30/webapps/helloweb/web-inf/classes" // fileInputStream fin = new FileInputStream (filename); // impossible outputStream out = resp.getOutputStream (); octet buf [] = nouveau octet [512]; int len = 0; // while ((len = fin.read (buf))! = - 1) {// out.write (buf, 0, len); //} while ((len = in.read (buf))! = - 1) {out.write (buf, 0, len); }}} Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.