Otro novato en apuros
Publicado por Saku (1 intervención) el 16/01/2006 20:37:21
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.
Pregunté en otros foros pero o bien no me contestaron o bien me dieron consejos un poco complicados para mi actual nivel.
El caso es que 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.
Un saludo.
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.
Pregunté en otros foros pero o bien no me contestaron o bien me dieron consejos un poco complicados para mi actual nivel.
El caso es que 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.
Un saludo.
Valora esta pregunta


0