Problemas con charAt(0) y FileWriter
Publicado por Pep (3 intervenciones) el 27/09/2007 19:22:58
Estoy aprendiendo Java con un manual y al hacer el siguiente programa no entiendo cual es el problema. El programa lee un archivo de texto y almacena en un nuevo solo las lineas que empiezan por '+' o '-'.
Pero parece ser que hay un problema en la linea
if( lineaTexto.charAt(0) == '+' || lineaTexto.charAt(0) == '-'){
filtro2.write(lineaTexto+'\r'+'\n');
ya que me retorna el siguiente mensaje:
Error al leer el fichero String index out of range: 0
Leidas en el fichero c:\pepe.txt 5 lineas
Escritas en el fichero Resultado.txt 2 lineas
Fin de la ejecucion del programa
Este es el codigo del programa
package capitulo10;
import java.io.*;
public class Fichero4 {
public static void main(String args[]) {
String nombreFichero=null;
String lineaTexto;
int nLeidas=0;
int nEscritas=0;
InputStreamReader flujo = new InputStreamReader(System.in);
BufferedReader teclado = new BufferedReader(flujo);
try{
System.out.println( "Introduce el nombre del fichero");
nombreFichero = teclado.readLine();
File canal1 = new File( nombreFichero );
File canal2 = new File( "c:\\Resultados.txt");
FileWriter flujo2 = new FileWriter(canal2);
BufferedWriter filtro2 = new BufferedWriter(flujo2);
if (canal1.canRead()){
FileReader flujo1 = new FileReader( canal1);
BufferedReader filtro1 = new BufferedReader(flujo1);
while(filtro1.ready() == true) {
lineaTexto= filtro1.readLine();
if( lineaTexto.charAt(0) == '+' || lineaTexto.charAt(0) == '-'){
filtro2.write(lineaTexto+'\r'+'\n');
nEscritas++;
}
System.out.println(lineaTexto);
nLeidas++;
}
flujo1.close();
}
flujo2.close();
} catch (Exception e){
System.out.println("Error al leer el fichero "+e.getMessage());
}
System.out.println("Leidas en el fichero "+ nombreFichero+ " "+ nLeidas+ " lineas");
System.out.println("Escritas en el fichero Resultado.txt "+ nEscritas+ " lineas");
System.out.println("Fin de la ejecucion del programa");
}
}
Muchas gracias de antemano.
Pero parece ser que hay un problema en la linea
if( lineaTexto.charAt(0) == '+' || lineaTexto.charAt(0) == '-'){
filtro2.write(lineaTexto+'\r'+'\n');
ya que me retorna el siguiente mensaje:
Error al leer el fichero String index out of range: 0
Leidas en el fichero c:\pepe.txt 5 lineas
Escritas en el fichero Resultado.txt 2 lineas
Fin de la ejecucion del programa
Este es el codigo del programa
package capitulo10;
import java.io.*;
public class Fichero4 {
public static void main(String args[]) {
String nombreFichero=null;
String lineaTexto;
int nLeidas=0;
int nEscritas=0;
InputStreamReader flujo = new InputStreamReader(System.in);
BufferedReader teclado = new BufferedReader(flujo);
try{
System.out.println( "Introduce el nombre del fichero");
nombreFichero = teclado.readLine();
File canal1 = new File( nombreFichero );
File canal2 = new File( "c:\\Resultados.txt");
FileWriter flujo2 = new FileWriter(canal2);
BufferedWriter filtro2 = new BufferedWriter(flujo2);
if (canal1.canRead()){
FileReader flujo1 = new FileReader( canal1);
BufferedReader filtro1 = new BufferedReader(flujo1);
while(filtro1.ready() == true) {
lineaTexto= filtro1.readLine();
if( lineaTexto.charAt(0) == '+' || lineaTexto.charAt(0) == '-'){
filtro2.write(lineaTexto+'\r'+'\n');
nEscritas++;
}
System.out.println(lineaTexto);
nLeidas++;
}
flujo1.close();
}
flujo2.close();
} catch (Exception e){
System.out.println("Error al leer el fichero "+e.getMessage());
}
System.out.println("Leidas en el fichero "+ nombreFichero+ " "+ nLeidas+ " lineas");
System.out.println("Escritas en el fichero Resultado.txt "+ nEscritas+ " lineas");
System.out.println("Fin de la ejecucion del programa");
}
}
Muchas gracias de antemano.
Valora esta pregunta


0