Foros del Web » Programación para mayores de 30 ;) » Java »

Convertir byte[] en File

Estas en el tema de Convertir byte[] en File en el foro de Java en Foros del Web. Hola, tengo un sistema legado que guarda ficheros en una base de datos usando File https://docs.oracle.com/javase/7/doc...a/io/File.html File, es la representacion absracta del fichero, el fichero ...
  #1 (permalink)  
Antiguo 15/03/2019, 13:31
Avatar de Hyemin  
Fecha de Ingreso: agosto-2014
Mensajes: 138
Antigüedad: 4 años, 10 meses
Puntos: 0
Convertir byte[] en File

Hola, tengo un sistema legado que guarda ficheros en una base de datos usando File

https://docs.oracle.com/javase/7/doc...a/io/File.html

File, es la representacion absracta del fichero, el fichero en si mismo se gurda en una carpeta del filesystem y en la base se guarda como binario un File que tiene las propiedades de dicha clase.

Ahora, desde otro programa necesito poder reconstruir el File (no el fichero que esta guardado en el disco, solo la represenatcion abstracta)

Cuando hago una query nativa, logro guardar el resultado binario en una variable byte[] resultado; ahora necesto convertir ese resultado (en memoria) a un File para poder acceder a las propiedades como absolutepath que tebnia originalmente.

Alguna idea de como hacerlo?
  #2 (permalink)  
Antiguo 20/03/2019, 03:20
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.499
Antigüedad: 10 años, 9 meses
Puntos: 188
Respuesta: Convertir byte[] en File

try {
FileOutputStream fos = new FileOutputStream("pathname")
fos.write(myByteArray); // donde myByteArray = byte[]
fos.close();
} catch (Exception ex) {
// puedes afinar el tipo de excepción y hacer lo que sea aquí
}
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 20/03/2019, 09:38
Avatar de Hyemin  
Fecha de Ingreso: agosto-2014
Mensajes: 138
Antigüedad: 4 años, 10 meses
Puntos: 0
Respuesta: Convertir byte[] en File

Gracias por tu respueta.

el array de bytes no contiene el fichero.png , lo que contiene es un objeto de la clase File que entre otros atributos tiene el path en donde esta el verdadero objeto.png

El metodo que uestras genera un fichero en el directorio pero su contenido no es el objeto.png
  #4 (permalink)  
Antiguo 26/03/2019, 01:58
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.499
Antigüedad: 10 años, 9 meses
Puntos: 188
Respuesta: Convertir byte[] en File

No sé si no comprendes los conceptos o los explicas mal

el array de bytes no puede contener un objeto de la clase File. En todo caso el objeto de la clase file contiene el array de bytes que quieres tratar

import java.io.File;
import java.nio.file.Files;

File file;
// Inicializa tu file aquí
byte[] fileContent = Files.readAllBytes(file.toPath());
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #5 (permalink)  
Antiguo 26/03/2019, 05:06
Avatar de Hyemin  
Fecha de Ingreso: agosto-2014
Mensajes: 138
Antigüedad: 4 años, 10 meses
Puntos: 0
Respuesta: Convertir byte[] en File

Peden ser ambas cosas, te remito a este documento
https://docs.oracle.com/javase/7/doc...a/io/File.html

Cuando tu en Java haces por ejemplo:

File fichero = new File("rutafichero");

obtienes ele elemento fichero, ese elemento tiene muchas propiedades, una de ellas es la ruta al dico donde esta el fichero de verdad.

Si luego tu, usando un ORM persistes la variable fichero, java lo guarda como binario en la base de datos, pero en ese binario no esta el fichero en si mismo, lo que esta es la clase serializada.

RTengo varios sistemas que trabajan asi hechos en java y si llegas a borrar el fichero del disco luego el ORM te trae igual el elemento de la base pero claro, no existe el fichero en disco.

En este caso, no tengo acceso al codigo de la aplicacion, solo tengo una tabla con esos binarios y necesito recuperarlos para poder obtener las rutas de los ficheros
  #6 (permalink)  
Antiguo 26/03/2019, 08:12
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 728
Antigüedad: 11 años
Puntos: 60
Respuesta: Convertir byte[] en File

En java, el tipo File solo representa el path, no el contenido.
Es un mal nombre que lleva a confusion.
__________________
Visita mi perfil en LinkedIn



La zona horaria es GMT -6. Ahora son las 21:27.