<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Leer un archivo con Java</title>
	<atom:link href="http://www.hachisvertas.net/blog/01/2007/09/03/leer-un-archivo-con-java/feed" rel="self" type="application/rss+xml" />
	<link>http://www.hachisvertas.net/blog/01/2007/09/03/leer-un-archivo-con-java</link>
	<description>J2EE, mis chorradas... y adoración a Lycka</description>
	<pubDate>Fri, 19 Mar 2010 05:11:30 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>By: ing_sergio</title>
		<link>http://www.hachisvertas.net/blog/01/2007/09/03/leer-un-archivo-con-java#comment-10175</link>
		<dc:creator>ing_sergio</dc:creator>
		<pubDate>Sat, 09 Jan 2010 19:56:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.hachisvertas.net/blog/01/2007/09/03/leer-un-archivo-con-java/#comment-10175</guid>
		<description>jaja... que pena molestar tanto... pero coloque el archivo que no era este si es el correcto con mi modificacion

import java.io.*;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class Mejorado{	
	public static void main (String[] args) throws IOException {
		InputStream is                = null;
		FileOutputStream fos          = null;
		BASE64Encoder encoder      = new BASE64Encoder ();
		BASE64Decoder decoder      = new BASE64Decoder ();
		byte[ ] almacenamiento    = new byte[4 * 1024]; // 4K buffer
		int bytesLeidos;		
		try {
      		is = new BufferedInputStream(new FileInputStream (new File("App.rar")));
		    	fos = new FileOutputStream(new File ("resultado.rar"));
		    while ((bytesLeidos = is.read(almacenamiento)) != -1) {
	            fos.write(decoder.decodeBuffer(encoder.encodeBuffer(almacenamiento)),0,bytesLeidos);
		    }
		} finally {
      		if (is != null) {
	            is.close( );
		    }
      		if (bos != null) {
	            bos.close();
			}
      		if (fos != null) {
	            fos.close();
		    }
		}
	}
}

saludes ing_sergio</description>
		<content:encoded><![CDATA[<p>jaja&#8230; que pena molestar tanto&#8230; pero coloque el archivo que no era este si es el correcto con mi modificacion</p>
<p>import java.io.*;<br />
import sun.misc.BASE64Decoder;<br />
import sun.misc.BASE64Encoder;<br />
public class Mejorado{<br />
	public static void main (String[] args) throws IOException {<br />
		InputStream is                = null;<br />
		FileOutputStream fos          = null;<br />
		BASE64Encoder encoder      = new BASE64Encoder ();<br />
		BASE64Decoder decoder      = new BASE64Decoder ();<br />
		byte[ ] almacenamiento    = new byte[4 * 1024]; // 4K buffer<br />
		int bytesLeidos;<br />
		try {<br />
      		is = new BufferedInputStream(new FileInputStream (new File(&#8221;App.rar&#8221;)));<br />
		    	fos = new FileOutputStream(new File (&#8221;resultado.rar&#8221;));<br />
		    while ((bytesLeidos = is.read(almacenamiento)) != -1) {<br />
	            fos.write(decoder.decodeBuffer(encoder.encodeBuffer(almacenamiento)),0,bytesLeidos);<br />
		    }<br />
		} finally {<br />
      		if (is != null) {<br />
	            is.close( );<br />
		    }<br />
      		if (bos != null) {<br />
	            bos.close();<br />
			}<br />
      		if (fos != null) {<br />
	            fos.close();<br />
		    }<br />
		}<br />
	}<br />
}</p>
<p>saludes ing_sergio</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ing_sergio</title>
		<link>http://www.hachisvertas.net/blog/01/2007/09/03/leer-un-archivo-con-java#comment-10174</link>
		<dc:creator>ing_sergio</dc:creator>
		<pubDate>Sat, 09 Jan 2010 19:54:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.hachisvertas.net/blog/01/2007/09/03/leer-un-archivo-con-java/#comment-10174</guid>
		<description>hola ya finalmente supere el error de memoria... y encontre una manera mas facil..."lo que pasa es que ud estaba haciendo un arreglo de byte convirtiendolo ByteArrayOutputStream y luego a este lo convertia a este otra vez en un arreglo de byte superpesado(dependiendo el tamaño del archivo) lo cual producia que la memoria utilizada por la jvm se agotara... en este ejemplo mejorado

import java.io.*;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class Correcto{	
	public static void main (String[] args) throws IOException {
		InputStream is                = null;
		ByteArrayOutputStream bos   = new ByteArrayOutputStream();
		FileOutputStream fos          = null;
		BASE64Encoder encoder      = new BASE64Encoder ();
		BASE64Decoder decoder      = new BASE64Decoder ();
		byte[ ] almacenamiento    = new byte[4 * 1024]; // 4K buffer
		int bytesLeidos;
		byte[] bytespdf;
		
		try {
      		is = new BufferedInputStream(new FileInputStream (new File("App.rar")));
		    
		    while ((bytesLeidos = is.read(almacenamiento)) != -1) {
	            bos.write(almacenamiento, 0, bytesLeidos);
		    }
      		bytespdf = bos.toByteArray();
		    fos = new FileOutputStream(new File ("resultado.rar"));
		    fos.write(decoder.decodeBuffer(encoder.encodeBuffer(bytespdf)));

		} finally {
      		if (is != null) {
	            is.close( );
		    }

      		if (bos != null) {
	            bos.close();
			}

      		if (fos != null) {
	            fos.close();
		    }
		}
	}
}

Para mis intereses funciona bien y lo que hace es que va cambiando escribiendo directamente el archivo apenas va copiando los byte... si se dan cuenta el write que le implemente a fos tiene tres parametros lo cual me deja agraguerle los byte a medida que almacenamiento los recoje...

este articulo me sirvio mucho, como se habran dado cuenta arriba... por eso tambien quise colocar esa pequeña correcion que me parece validad ps para el caso concreto que lo necesito... saludes

ing_sergio</description>
		<content:encoded><![CDATA[<p>hola ya finalmente supere el error de memoria&#8230; y encontre una manera mas facil&#8230;&#8221;lo que pasa es que ud estaba haciendo un arreglo de byte convirtiendolo ByteArrayOutputStream y luego a este lo convertia a este otra vez en un arreglo de byte superpesado(dependiendo el tamaño del archivo) lo cual producia que la memoria utilizada por la jvm se agotara&#8230; en este ejemplo mejorado</p>
<p>import java.io.*;<br />
import sun.misc.BASE64Decoder;<br />
import sun.misc.BASE64Encoder;<br />
public class Correcto{<br />
	public static void main (String[] args) throws IOException {<br />
		InputStream is                = null;<br />
		ByteArrayOutputStream bos   = new ByteArrayOutputStream();<br />
		FileOutputStream fos          = null;<br />
		BASE64Encoder encoder      = new BASE64Encoder ();<br />
		BASE64Decoder decoder      = new BASE64Decoder ();<br />
		byte[ ] almacenamiento    = new byte[4 * 1024]; // 4K buffer<br />
		int bytesLeidos;<br />
		byte[] bytespdf;</p>
<p>		try {<br />
      		is = new BufferedInputStream(new FileInputStream (new File(&#8221;App.rar&#8221;)));</p>
<p>		    while ((bytesLeidos = is.read(almacenamiento)) != -1) {<br />
	            bos.write(almacenamiento, 0, bytesLeidos);<br />
		    }<br />
      		bytespdf = bos.toByteArray();<br />
		    fos = new FileOutputStream(new File (&#8221;resultado.rar&#8221;));<br />
		    fos.write(decoder.decodeBuffer(encoder.encodeBuffer(bytespdf)));</p>
<p>		} finally {<br />
      		if (is != null) {<br />
	            is.close( );<br />
		    }</p>
<p>      		if (bos != null) {<br />
	            bos.close();<br />
			}</p>
<p>      		if (fos != null) {<br />
	            fos.close();<br />
		    }<br />
		}<br />
	}<br />
}</p>
<p>Para mis intereses funciona bien y lo que hace es que va cambiando escribiendo directamente el archivo apenas va copiando los byte&#8230; si se dan cuenta el write que le implemente a fos tiene tres parametros lo cual me deja agraguerle los byte a medida que almacenamiento los recoje&#8230;</p>
<p>este articulo me sirvio mucho, como se habran dado cuenta arriba&#8230; por eso tambien quise colocar esa pequeña correcion que me parece validad ps para el caso concreto que lo necesito&#8230; saludes</p>
<p>ing_sergio</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ing_sergio</title>
		<link>http://www.hachisvertas.net/blog/01/2007/09/03/leer-un-archivo-con-java#comment-10173</link>
		<dc:creator>ing_sergio</dc:creator>
		<pubDate>Sat, 09 Jan 2010 19:28:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.hachisvertas.net/blog/01/2007/09/03/leer-un-archivo-con-java/#comment-10173</guid>
		<description>ya he estado analizando el ejemplo y para archivos mayores a 6mb comienza a flaquear y hacer errores:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:133)
    at java.lang.StringCoding.decode(StringCoding.java:173)
    at java.lang.StringCoding.decode(StringCoding.java:185)
    at java.lang.String.(String.java:571)
    at java.io.ByteArrayOutputStream.toString(ByteArrayOutputStream.java:163)
    at sun.misc.CharacterEncoder.encodeBuffer(CharacterEncoder.java:311)
    at Correcto.main(Correcto.java:26)

mi correo por si algo.... andres.1123@yahoo.com</description>
		<content:encoded><![CDATA[<p>ya he estado analizando el ejemplo y para archivos mayores a 6mb comienza a flaquear y hacer errores:<br />
Exception in thread &#8220;main&#8221; java.lang.OutOfMemoryError: Java heap space<br />
    at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:133)<br />
    at java.lang.StringCoding.decode(StringCoding.java:173)<br />
    at java.lang.StringCoding.decode(StringCoding.java:185)<br />
    at java.lang.String.(String.java:571)<br />
    at java.io.ByteArrayOutputStream.toString(ByteArrayOutputStream.java:163)<br />
    at sun.misc.CharacterEncoder.encodeBuffer(CharacterEncoder.java:311)<br />
    at Correcto.main(Correcto.java:26)</p>
<p>mi correo por si algo&#8230;. <a href="mailto:andres.1123@yahoo.com">andres.1123@yahoo.com</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ing_sergio</title>
		<link>http://www.hachisvertas.net/blog/01/2007/09/03/leer-un-archivo-con-java#comment-10171</link>
		<dc:creator>ing_sergio</dc:creator>
		<pubDate>Sat, 09 Jan 2010 16:19:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.hachisvertas.net/blog/01/2007/09/03/leer-un-archivo-con-java/#comment-10171</guid>
		<description>Hola quería darte las gracias por el programa... porque estuve durante todo una semana leyendo y buscando en internet cual era la codificacion... de archivos comunes en windows (ej: exe, rar, zip, etc), ya que cuando los abría con notepad y los guardaba(como estaban o ya sea cambiando el formato) se dañaba la cabecera del archivo o el tamaño o cualquier vaina haciendoles infuncionales...tambien probe con java leerlos y escribirlos en diferentes formatos (utf-8-16-unicode, etc) y nada e incluso el procedimiento del notepad lo hice con el edit del ms-dos y nada... ahora con el programa que tu hiciste ya puedo por lo menos avanzar un poco...ya que puedo hacer copias de archivos... sin dañar su cabecera...finalmente y para no extenderme... quiero comentarte que todo esto lo estoy haciendo con el fin de implementar un algoritmo de comprension de archivos que supere a los actuales winrar y winzip (el kgb es muy malo) sin perdida de datos y a un buen rendimiento....ya con tu aporte avance un poco al menos ya puedo leer y escribir bien archivos... ahora tengo que encontrar la forma de jugar con lo caracteres para hallar la comprension...

muchas gracias por tu aporte y si me puedes dar un aporte para utilizarlo en el compresor te lo agradecería mas...

ing_sergio</description>
		<content:encoded><![CDATA[<p>Hola quería darte las gracias por el programa&#8230; porque estuve durante todo una semana leyendo y buscando en internet cual era la codificacion&#8230; de archivos comunes en windows (ej: exe, rar, zip, etc), ya que cuando los abría con notepad y los guardaba(como estaban o ya sea cambiando el formato) se dañaba la cabecera del archivo o el tamaño o cualquier vaina haciendoles infuncionales&#8230;tambien probe con java leerlos y escribirlos en diferentes formatos (utf-8-16-unicode, etc) y nada e incluso el procedimiento del notepad lo hice con el edit del ms-dos y nada&#8230; ahora con el programa que tu hiciste ya puedo por lo menos avanzar un poco&#8230;ya que puedo hacer copias de archivos&#8230; sin dañar su cabecera&#8230;finalmente y para no extenderme&#8230; quiero comentarte que todo esto lo estoy haciendo con el fin de implementar un algoritmo de comprension de archivos que supere a los actuales winrar y winzip (el kgb es muy malo) sin perdida de datos y a un buen rendimiento&#8230;.ya con tu aporte avance un poco al menos ya puedo leer y escribir bien archivos&#8230; ahora tengo que encontrar la forma de jugar con lo caracteres para hallar la comprension&#8230;</p>
<p>muchas gracias por tu aporte y si me puedes dar un aporte para utilizarlo en el compresor te lo agradecería mas&#8230;</p>
<p>ing_sergio</p>
]]></content:encoded>
	</item>
</channel>
</rss>
