duda muy básica...

Saku
21 de Diciembre del 2005
Hola.

Estoy empezando con JAVA y con la programación en general y me gustaría que alguien me resolviera esta duda:

Mi intención con este programa es leer un fichero de nombre "escrito.txt" y sacarlo por pantalla.
Quiero que a partir del carácter '@' el programa ignore tanto ese carácter como el resto de la línea.
Sé que está el metodo readLine que sería el más adecuado pero por curiosidad me gustaría que alguien
me explicase qué fallo tiene el bucle o el algoritmo en general para que por pantalla no salga nada.

El código del prorama es el siguiente:

import java.io.*;

class AS3 {
public static void main(String[] args) {
try {
File fich = new File("escrito.txt");
FileInputStream esc = new FileInputStream(fich);
int cont;
int c;
cont = 0;
String tex = new String("");

bucle1:
while ((c = esc.read()) != -1) {
if (c == (int)'#') {
c = esc.read();
while (c != (int)'n') {
c = esc.read();
}
continue bucle1;
}
else {
tex = tex + (char)c;
cont++;
}
}



System.out.println(tex);
System.out.println(cont);
} catch (FileNotFoundException e) {
System.err.println("FileStreamsTest: " + e);
} catch (IOException e) {
System.err.println("FileStreamsTest: " + e);
}
}
}


Gracias.

Saku
21 de Diciembre del 2005
donde pone '#' debería poner '@'.
Gracias.

rocachodo
21 de Diciembre del 2005
La verdad, no sé exactamente por qué no funciona el programa. Lo que te aconsejo es que no utilices etiquetas y continue, porque rompen la linealidad del programa y hacen más difícil su entendimiento. A cambio te propongo otra solución más sencilla. Me centro en la parte del bucle:

boolean sigue=true;
while((c=esc.read())!=-1)
{
if(c=='@')
sigue=false;
else if(c=='n')
sigue=true;

if(sigue)
{
tex+=c;
cont++;
}
}

Esto debería de funcionar, aunque no lo he probado

Saku
21 de Diciembre del 2005
Gracias compañero.
Lo cierto es que me he tirado toda la **** mañana cambiando y recambiando los bucles y no había manera.
Resultaba muy frustrante que en algo tan sencillo como esto ya me quedase tan atascado, aunque si me dices que teoricamente debería funcionar se me pasa un poco el sofoco...
Probaré con tu consejo a ver qué tal.
Un saludo.