txt tipos secuenciales resueltos programa manejo leer interfaz guardar grafica ejemplos datos con como binarios archivos archivo java arrays file io inputstream

tipos - programa de archivos secuenciales en java



byte[] para archivar en Java (12)

Sé que se hace con InputStream

En realidad, estarías writing en un archivo de salida ...

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.


////////////////////////////1] Archivo a Byte [] ///////////////// //

Path path = Paths.get(p); byte[] data = null; try { data = Files.readAllBytes(path); } catch (IOException ex) { Logger.getLogger(Agent1.class.getName()).log(Level.SEVERE, null, ex); }

/////////////////////// 2] Byte [] al archivo //////////////////// ///////

File f = new File(fileName); byte[] fileContent = msg.getByteSequenceContent(); Path path = Paths.get(f.getAbsolutePath()); try { Files.write(path, fileContent); } catch (IOException ex) { Logger.getLogger(Agent2.class.getName()).log(Level.SEVERE, null, ex); }


Desde Java 7 en adelante, puede utilizar la declaración try-with-resources para evitar pérdidas de recursos y hacer que su código sea más fácil de leer. Más sobre eso here .

Para escribir su byteArray en un archivo que haría:

try (FileOutputStream fos = new FileOutputStream("fullPathToFile")) { fos.write(byteArray); } catch (IOException ioe) { ioe.printStackTrace(); }


Ejemplo básico:

String fileName = "file.test"; BufferedOutputStream bs = null; try { FileOutputStream fs = new FileOutputStream(new File(fileName)); bs = new BufferedOutputStream(fs); bs.write(byte_array); bs.close(); bs = null; } catch (Exception e) { e.printStackTrace() } if (bs != null) try { bs.close(); } catch (Exception e) {}


Este es un programa en el que estamos leyendo e imprimiendo una matriz de bytes de longitud y desplazamiento utilizando String Builder y escribiendo la matriz de bytes de longitud de compensación en el nuevo archivo.

` Introduce el código aquí

import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; //*This is a program where we are reading and printing array of bytes offset and length using StringBuilder and Writing the array of bytes offset length to the new file*// public class ReadandWriteAByte { public void readandWriteBytesToFile(){ File file = new File("count.char"); //(abcdefghijk) File bfile = new File("bytefile.txt");//(New File) byte[] b; FileInputStream fis = null; FileOutputStream fos = null; try{ fis = new FileInputStream (file); fos = new FileOutputStream (bfile); b = new byte [1024]; int i; StringBuilder sb = new StringBuilder(); while ((i = fis.read(b))!=-1){ sb.append(new String(b,5,5)); fos.write(b, 2, 5); } System.out.println(sb.toString()); }catch (IOException e) { e.printStackTrace(); }finally { try { if(fis != null); fis.close(); //This helps to close the stream }catch (IOException e){ e.printStackTrace(); } } } public static void main (String args[]){ ReadandWriteAByte rb = new ReadandWriteAByte(); rb.readandWriteBytesToFile(); } }

O / P en la consola: fghij

O / P en nuevo archivo: cdefg


Otra solución usando java.nio.file :

byte[] bytes = ...; Path path = Paths.get("C:/myfile.pdf"); Files.write(path, bytes);


Pruebe un OutputStream o más específicamente FileOutputStream



Sin bibliotecas:

FileOutputStream stream = new FileOutputStream(path); try { stream.write(bytes); } finally { stream.close(); }

Con Google Guava :

Files.write(bytes, new File(path));

Con Apache Commons :

FileUtils.writeByteArrayToFile(new File(path), bytes);

Todas estas estrategias requieren que atrapes una IOException en algún momento también.


También desde Java 7, una línea con java.nio.file.Files:

Files.write(new File(filePath).toPath(), data);

Donde los datos son su byte [] y filePath es una cadena. También puede agregar múltiples opciones de abrir archivos con la clase StandardOpenOptions. Agrega tiros o sonido envolvente con try / catch.


Utilice Apache Commons IO

FileUtils.writeByteArrayToFile(new File("pathname"), myByteArray)

O, si insistes en hacer el trabajo por ti 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 }


File f = new File(fileName); byte[] fileContent = msg.getByteSequenceContent(); Path path = Paths.get(f.getAbsolutePath()); try { Files.write(path, fileContent); } catch (IOException ex) { Logger.getLogger(Agent2.class.getName()).log(Level.SEVERE, null, ex); }