Con Java:
Tengo un byte[]
que representa un archivo.
¿Cómo escribo esto en un archivo (es decir C:\myfile.pdf
)?
Sé que se hizo con InputStream, pero parece que no puedo resolverlo.
Utilice Apache Commons IO
FileUtils.writeByteArrayToFile(new File("pathname"), myByteArray)
O, si insiste en hacer el trabajo por usted mismo ...
try (FileOutputStream fos = new FileOutputStream("pathname")) {
fos.write(myByteArray);
//fos.close(); There is no more need for this line since you had created the instance of "fos" inside the try. And this will automatically close the OutputStream
}
try {} finally {}
para garantizar la limpieza adecuada de los recursos.Sin ninguna biblioteca:
Con Google Guava :
Con Apache Commons :
Todas estas estrategias requieren que capture una IOException en algún momento también.
fuente
Otra solución usando
java.nio.file
:fuente
C:\myfile.pdf
que funcione en Android de todos modos ...;)También desde Java 7, una línea con java.nio.file.Files:
Donde data es su byte [] y filePath es una cadena. También puede agregar múltiples opciones de apertura de archivos con la clase StandardOpenOptions. Agregue tiros o rodee con try / catch.
fuente
Paths.get(filePath);
lugar denew File(filePath).toPath()
A partir de Java 7 en adelante, puede usar la declaración de prueba con recursos para evitar fugas de recursos y hacer que su código sea más fácil de leer. Más sobre eso aquí .
Para escribir su
byteArray
en un archivo que haría:fuente
Prueba uno
OutputStream
o más específicamenteFileOutputStream
fuente
En realidad, estaría escribiendo en un archivo de salida ...
fuente
fuente
////////////////////////// 1] Archivo al byte [] ///////////////// //
/////////////////////// 2] Byte [] al archivo //////////////////// ///////
fuente
Ejemplo básico:
fuente
Este es un programa en el que estamos leyendo e imprimiendo una matriz de bytes de desplazamiento y longitud usando String Builder y escribiendo la matriz de bytes de longitud de desplazamiento en el nuevo archivo.
` Ingrese el código aquí
O / P en consola: fghij
O / P en archivo nuevo: cdefg
fuente
Puedes probar Cactoos :
Más detalles: http://www.yegor256.com/2017/06/22/object-oriented-input-output-in-cactoos.html
fuente