2
« en: Lunes 16 de Enero de 2006, 17:32 »
Hola.
Mi dominio de Java es cero patatero y lleva ya unos días atascado en este problema:
Resulta que quiero escribir un programa que lea un fichero de nombre "escrito.txt" y lo haga aparecer en pantalla. Pero con una particularidad, y es que si lee un caracter '$' ha de ignorarlo así como el resto de la línea.
Leí por ahí que esto se podía hacer facilmente con readLine, pero no termino de aclararme.
Tengo dos códigos fuente alternativos pero ninguno de los dos me funciona y me gustaría que alguno me dijeseis donde está el fallo o qué otro algoritmo podría utilizar para poder hacer funcionar el programa.
Los códigos fuente serían:
Prueba.java --->
-----------------------------------------------------------------------
import java.io.*;
class Prueba {
public static void main(String[] args) {
try {
File fich = new File("escrito.txt");
FileInputStream escrito = new FileInputStream(fich);
int cont;
int c;
cont = 0;
String tex = new String("");
bucle1:
while ((c = escrito.read()) != -1) {
if (c == (int)'$') {
c = escrito.read();
while (c != (int)'\n') {
c = escrito.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);
}
}
}
-----------------------------------------------------------------------
Prueba2.java --->
------------------------------------------------------------------------
import java.io.*;
class Prueba2 {
public static void main(String[] args) {
try {
File fich = new File("escrito.txt");
FileInputStream sud = new FileInputStream(fich);
int cont;
int c;
cont = 0;
boolean sigue = true;
String tex = new String("");
bucle1:
while ((c = escrito.read()) != -1) {
if (c == (int)'$') {
sigue = false;
}
else {
sigue = true;
}
if (sigue) {
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);
}
}
}
-----------------------------------------------------------------------
Muchas gracias de antemano y perdón por el tostón.