Para leer el archivo uso InputStreamReader, y en principio todo va bien, el
problema viene cuando quiero volver a una linea anterior (en concreto a la
primera linea).
Mirando el API encontre los metodos mark(int) y reset que en teoria deben
servir para mi proposito. El problema es que aunque al compilar no me de
ningun problema, al ejecutar la JVM se cuelga.
Alguna idea? bueno, gracias de antemano.
ByteArrayOutputStream bos = new ByteArrayOutputStream();
//Escribimos algo en el stream, concretamente 10 A
for(int i=0;i<10;i++) bos.write(65);
//Si usamos el reset en un stream de escritura
//colocamos el puntero en la posición inicial
bos.reset();
//Escribimos desde la B en adelante, 10 letras
for(int i=0;i<10;i++) bos.write(66+i);
//Mostramos la información que hemos escrito
byte[] b = bos.toByteArray();
for(int i=0;i<b.length;i++)
{
System.out.print((char)b[i]);
}
//Leemos desde el stream
ByteArrayInputStream bis = new ByteArrayInputStream(b,0,b.length);
int a = 0;
//Preguntamos si podemos usar el reset y el mark
System.out.println(">>>>>"+bis.markSupported());
int contador = 0;
//Cuando en el stream ya no hay nada más que leer
//obtenemos un -1
while ((a=bis.read())!=-1)
{
System.out.print((char)a);
//Cuando leemos el primer byte, añadimos una
marca
if(contador== 1) bis.mark(1);
//Cuando leamos el tercer byte, volvemos
//a la marca, así que releeremos el segundo
//y el tercer bytes
if(contador== 3) bis.reset();
contador++;
}
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG