Este artículo describe la clase de herramienta de carga y descarga de archivos implementada por Java. Compártelo para su referencia, como sigue:
Esta es una clase de herramientas que utiliza el idioma Java para cargar y descargar archivos en el entorno Eclipse. Al igual que la clase de herramienta de carga y descarga de archivo C# introducida antes, para evitar la duplicación de los nombres de archivos en el servidor, el nombre del archivo en el servidor se usa en forma de "Tiempo del servidor (definido a milisegundos) + nombre de archivo + sufijo de archivo"; Durante el proceso de descarga, Spring MVC ResponseEntity se usa para la descarga de archivos, que devuelve una transmisión de byte. Después de que la descarga sea exitosa, la ruta de guardado del archivo se puede personalizar.
El código fuente específico es el siguiente:
paquete com.utils; import java.io.file; import java.io.ioexception; import java.io.inputstream; import java.io.unsupportedenCodingException; import java.text.simpledateFormat; import java.util.date; import org. Según el camino. Si no hay directorio, cree el directorio * * @param ruta */ private static void creatir (string ruta) {file siledir = new File (ruta); if (? creadoir (ruta); Fecha fecha = nueva fecha (); SimpleDateFormat dateFormat = new SimpleDateFormat ("yyyymmddhhmmsssss"); // Define a MilliseConds String Nowstr = DateFormat.Format (date); String filenameStr = fileName.substring(0, fileName.lastIndexOf("."));// Remove the file name of the suffix String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);// Suffix if (fileName.trim() != "") {// If the name is not "", it means that the file exists, otherwise it means that the Archivo no existe Path + = "//" + FileNAmestr + Nowstr + "." + sufijo; // Defina la ruta de carga} ruta de retorno; }/ ** * Recordar la descarga de archivo * * @param nombre de archivo * @param ruta * @return */ public static responseEntity <byte []> downloadFile (string filename, string rath) {try {fileName = new String (fileName.getByTes ("gb2312"), "ISO_8859_1"); // ev Evite no muestra el nombre de archivo en el nombre de archivo en el nombre de archivo en el nombre de los chinos en che (UnsupportedEncodingException e1) {e1.printStackTrace (); } Archivo archivo = nuevo archivo (ruta); Encabezados httpheaders = new httpheaders (); Headers.SetContentType (Mediatype.application_octet_stream); Headers.setContentDispositionFormData ("Adjunto", nombre de archivo); ResponseEntity <byte []> byteARR = null; Pruebe {byteArr = new ResponseEntity <byte []> (fileUtils.readfiletobytearray (archivo), encabezados, httpstatus.ok); } catch (ioException e) {E.PrintStackTrace (); } return bytearr; } / ** * Escriba datos de la secuencia de entrada a una matriz de bytes * * @param en * @return * / public static byte [] inputStream2ByTearray (inputStream in, boolean isClose) {byte [] byteArray = null; intente {int total = in.available (); byteArray = nuevo byte [total]; in.read (bytearray); } catch (ioException e) {E.PrintStackTrace (); } finalmente {if (isClose) {try {in.close (); } catch (Exception e2) {System.out.println ("Close Churn falló"); }}} return bytearray; }}Para obtener más información sobre los algoritmos Java, los lectores interesados en este sitio pueden ver los temas: "Resumen de archivos Java y habilidades de operación de directorio", "Tutorial sobre estructuras de datos de Java y algoritmos", "Resumen de habilidades de nodo DOM de operación Java" y "Resumen de habilidades de operación de cache de Java"
Espero que este artículo sea útil para la programación Java de todos.