Directorio de artículos
Este blog se basa en un proyecto JAVA, que convierte la cadena de entrada en un InputStream y luego descarga el archivo en la ubicación predeterminada del navegador. También implica convertir un flujo de entrada en una cadena, escribir una cadena en un flujo de salida y escribir la salida en una cadena; también existen formatos de tipo contenido comúnmente utilizados.
1. Convertir cadena a InputStream
La primera parte es convertir una cadena a InputStream.
También enumera el flujo de entrada a cadena, la cadena a OutputStream y la salida a cadena para uso posterior ~
//string转inputstream
String inputStr = "testXXX";
InputStream inputStream = new ByteArrayInputStream(inputStr.getBytes());
//inputstream转string
ByteArrayOutputStream outs = new ByteArrayOutputStream();
int i;
while((i = i.read() != -)){
outs.write(i);
}
String str = outs.toString();
//string写入outputStream
OutputStream os = System.out;
os.write(string.getByte());
//output写入string
ByteArrayOutputStream outs = new ByteArrayOutputStrea();
String str = outs.toString();
2. Descargar archivos
Debe pasar directamente la respuesta HttpServletResponse a los parámetros de la interfaz del controlador, configurar los datos de respuesta en el objeto HttpServletResponse
y luego Tomcat convertirá el objeto HttpServletResponse en una cadena de acuerdo con el formato del protocolo HTTP y lo volverá a escribir en el navegador a través de Socket.
Ingrese el nombre del archivo de configuración (fileName) y el tipo de archivo que se descargará (contentType). ContentType se puede explicar en detalle en la siguiente sección.
inputStream es el flujo de archivos que se descargará, ya sea un archivo de red o un archivo almacenado en el servicio de almacenamiento estático COS del servicio en la nube, se puede convertir al formato de InputStream.
public void downloadFile(HttpServletResponse response, InputStream inputStream, String fileName, String contentType) {
try (BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream())) {
//通知浏览器以附件形式下载
response.setHeader("Content-Disposition", String.format("attachment; filename=\"%s\"", fileName));
//文件输出格式
response.setContentType(contentType);
byte[] input = new byte[1024];
int len;
while ((len = inputStream.read(input)) != -1) {
out.write(car, 0, len);
}
} catch (IOException e) {
log.error("Method:downloadFile,ErrorMsg:{}", e.getMessage());
}
}
interfaz del controlador
@GetMapping("/download")
public void download(HttpServletResponse response) {
return this.downloadFile(response);
}
Tipo de contenido
text/plain
Formato de texto plano
text/javascript
Formato JSON Formato
text/plain
HTML
text/xml
Formato XML
image/gif
Formato de imagen GIF Formato
image/jpeg
de imagen JPEG Formato de
image/png
imagen PNG Formato
image/tiff
TIFF Formato
image/x-dcxi
DCX
image/x-pcx
Formato PCX
application/xml
Formato de datos XML Formato
application/json
de datos JSON Formato
application/pdf
PDF Formato
application/rtf
RTF Formato de
application/msword
documento de Word Formato de documento
application/vnd.ms-excel
de Excel Formato
application/vnd.ms-powerpoint
de documento de Powerpoint Formato de
application/vnd.visio
documento de Visio
application/octet-stream
Datos de flujo binario