Java - Al leer y escribir un archivo la salida cambia

 
Vista:
sin imagen de perfil

Al leer y escribir un archivo la salida cambia

Publicado por alejandro (5 intervenciones) el 21/07/2016 11:23:46
Hola, buenos dias.

Estoy intentando leer un archivo(da igual la extension) y volver a escribirlo, pero al hacerlo, el archivo de salida no es el mismo que el de entrada.

Mi codigo es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
OutputStream outputStream = null;
FileReader fr = new FileReader("ruta\\entrada.PNG");
BufferedReader br = new BufferedReader(fr);
String linea;
while ((linea = br.readLine()) != null) {
	contenido += linea + "\n";
}
 
byte[] toBytes= contenido.getBytes();
InputStream inputStream = new ByteArrayInputStream(toBytes);
try {
	outputStream = new FileOutputStream(new File("ruta\\salida.PNG"));
        int read = 0;
	byte[] bytes = new byte[1024];
 
	while ((read = inputStream.read(bytes)) != -1) {
		outputStream.write(bytes, 0, read);
	}
	outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
inputStream.close();

Si me preguntan que porque paso a bytes y lo imprimo de esa manera, es porque lo que haria en el medio necesita de esa conversion.
Si por otro lado me dice que no puedo cargar una imagen en un string, si que se puede hacer algo parecido, ya que se puede asi:
1
2
3
4
File fil = ~~~~;
FileInputStream fis = null;
fis = new FileInputStream(fil);
byte[] bytess = IOUtils.toByteArray(fis);

y no quiero usar esta forma, ya que para archivos muy grandes, supero el tamaño del heap, lo cual no haria al leer linea a linea.

Agradeceria mucho su ayuda.
Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder