Red de conocimiento informático - Material del sitio web - ¿Cómo utilizar flujos de bytes para cargar y descargar archivos en Java?

¿Cómo utilizar flujos de bytes para cargar y descargar archivos en Java?

La implementación de carga y descarga es en realidad conversión io.

FileInputStream;

importar java.io.FileOutputStream;

importar java.io.InputStream;

importar org.apache.FTPFile;

clase pública CCFCCBFTP {

/**

* Subir archivos

* Subir archivos

*

* @param fileName

* @param PlainFilePathplainFilePath ruta ruta

* @param filepath

* @return

* @throws Excepción

*/

cadena estática pública fileUploadByFtp(String PlainFilePath, String fileName, String filepath) lanza una excepción {

FileInputStream fis = null; p>

ByteArrayOutputStream bos = null

FTPClient ftpClient = new FTPClient();

String bl = "falso"

prueba {

fis = new FileInputStream(plainFilePath);

bos = new ByteArrayOutputStream(fis.available());

byte[] buffer = nuevo byte[1024 ];

int count = 0;

while ((count = fis.read(buffer)) != -1) {

bos.write(buffer, 0, count) ;

}

bos.flush();

Log.info("Se inició la carga cifrada del archivo");

Log .info("Conectando al servidor de carga remota" + CCFCCBUtil.CCFCCBHOSTNAME+": "+22);

ftpClient.connect(CCFCCBUtil.CCFCCBHOSTNAME, 22);

ftpClient. login( CCFCCBUtil.CCFCCBLOGINNAME, CCFCCBUtil.CCFCCBLOGINPASSWORD);

FTPFile[] fs;

fs = ftpClient.listFiles(); Log.info("Comprobando si existe la ruta del archivo: /" +filepath );

if("false".equals(bl)){

ViewUtil.dataSEErrorPerformedCommon("Consultando una ruta de archivo que no existe: "+"/" + ruta de archivo );

return bl;

}

ftpClien

t.setBufferSize(1024);

ftpClient.setControlEncoding("GBK");

// Establecer tipo de archivo (binario)

ftpClient.setFileType(FTPClient .BINARY_FILE_TYPE);

ftpClient.storeFile(fileName, fis);

Ruta para guardar el archivo de registro: "+"/"+filepath+"/");

return bl;

} catch (Excepción e) {

throw e;

} finalmente {

if (fis ! = null) {

prueba {

fis.close();

} captura (Excepción e) {

Log.info (e.getLocalizedMessage(), e);

}

}

if (bos != null) {

prueba {

bos.close();

} captura (Excepción e) {

Log.info(e.getLocalizedMessage(), e); >

}

}

}

}

}

/**

* Descargar archivo

*

* @param localFilePath

* @param fileName

* @param routeFilepath

* @return <

* @throws Excepción

*/

archivo de cadena estática públicaDownloadByFtp(String localFilePath, String fileName, String routeFilepath) Lanza una excepción {

FileInputStream fis = null

ByteArrayOutputStream bos = null

FileOutputStream fos = null

FTPClient ftpClient = new; FTPClient();

String SFP = System.GetProperty("file.SFP")getProperty("file.separator");

String bl = "false";

intente {

Log.info("Se inició la descarga y descifrado del archivo");

Log.info("Conexión al servidor de descarga remota "+CCFCCBUtil.CCFCCBHOSTNAME+": "+22);

ftpClient.connect(CCFCCBUtil.changeWorkingDirectory(routeFilepath);

bl = "false";

fs = ftpClient.listFiles() ;

> for (FTPFile ff: fs) {

if (ff.getName().equals(fileName)) {

bl = "true";

Log.info("Se inició la descarga del archivo." )

ftpClient.setBufferSize(1024);

// Establece el tipo de archivo (binario)

ftpClient .setFileType(FTPClient.BINARY_FILE_TYPE);

InputStream es = ftpClient.retrieveFileStream(FTPClient.BINARY_FILE_TYPE);

FTPClient.retrieveFileStream(FTPClient.BINARY_FILE_TYPE)retrieveFileStream(fileName);

bos = new ByteArrayOutputStream(is.available());

byte[] buffer = nuevo byte[1024];

int count = 0;

while ((count = is.read(buffer)) != -1) {

bos.write(buffer, 0, count);

}

bos.flush();

fos = new FileOutputStream(localFilePath+SFP+fileName);

fos.write(bos.toByteArray());

Log.info("Fin de la descarga del archivo: " + localFilePath);

}

}

Log.info("Comprobando para ver si el archivo está guardado: " + fileName + " "+bl);

if("Comprobando si el archivo está guardado: " + fileName + " "+bl).

if ("false".equals(bl)){

ViewUtil.dataSEErrorPerformedCommon("La consulta no tiene resultados, verifique nuevamente más tarde." getLocalizedMessage(), e);

}

}

}

if (bos ! = null) {

intente {

bos.close();

} catch (Excepción e) {

Log.info(e. getLocalizedMessage(), e );

}