Tengo que diseñar un algoritmo para ir recuperando unas cadenas de caracteres de un archivo pedido por el usuario. Un ejemplo del archivo sería:
char nombreVariable;
el codigo que yo tengo lo que hace es que va recorriendo el archivo caracter por caracter y si se encuentra un espacio en blanco o un signo de coma ', ' o de punto y coma ';',quiere decir que ha encontrado una cadena. En el ejemplo que puse las cadenas serian
char, nombreVariable y tambien el ;
Pero para el algoritmo que tengo solo obtiene las cadenas char y nombreVariable. El punto y coma no lo puede imprimir, y no se como cambiar el algoritmo que tengo:
este es el primer ciclo que me tiene que leer caracter por caracter hasta el final de archivo:
Código
while((car = af.read()) != -1) { componenteLexico = Clase.leerArchivo(nombreArchivo,af); }
y este es en el que me concatena los caracteres hasta que se encuentra con el caracter ' ' o ';'.
Código
{ int car; char c; long posicion; StringBuilder sb = new StringBuilder(); try { posicion = r.getFilePointer(); r.seek(posicion-1); while((car = r.read()) != -1 && car != ' ') { if(!esSignoPuntuacion(car)) { c = (char)car; sb.append(c); } } cadena = sb.toString(); } { } return cadena; } public static boolean esSignoPuntuacion(int car) { if(car == ',' || car == ';' || car == '.') return true; else return false; }
gracias