Crear un txt a partir de otro utilizando tokens

Lo que estoy haciendo es leer un archivo txt linea por linea, luego delimito un token, par a que cada vez que encuentre el token y compare con un arreglo para que lo pueda guardar en un nuevo archivo y así suecesivamente hasta que termine de leer el archivo, el archivo que lee contiene una estructura así:
2008-09-29 16:27:50>$GPGGA, 162816.000,1916.1934, AN, 09828.3969, W, 1,11,0.9,2330.5, M, 0.0, M, 0.0,0000*6Ay el delimitador es >
El código es el siguiente:

import javax.swing.*;
import java.util.StringTokenizer;
import java.io.*;
public class ejemplo41{
public static void main( String args[] ) {
File archivo = null;
FileReader fr = null;
String linea;
int c=0;
String p[]={ "$GPGGA","$GPRMC","$GPGSV","$GPGSA","$GPVTG","$GPGLL","$GPIOP","$GPGSM","$GPAREA","$GPEVENT"};
int a;
int d=0;
String b;
try {
archivo = new File ("C:\\archivo.log");
fr = new FileReader (archivo);
BufferedReader br = new BufferedReader(fr);
while((linea=br.readLine())!=null)
StringTokenizer st = new StringTokenizer (linea,">" );
while(st.hasMoreTokens())
{
a= st.countTokens();
b= st.nextToken();
for ( int h = 0; h< p.length; h++ ) {
if(b.startsWith(p[c]))
try {
String nombreArchivo= "C:\\N.txt"; // Aqui se le asigna el nombre y
FileWriter fw = null; // la extension al archivo
fw = new FileWriter(nombreArchivo);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter salArch = new PrintWriter(bw);
for ( int f = 0; f< p.length; f++ )
if(b.startsWith(p[f]))
salArch.print(linea);
salArch.close(); } //FIN DEL TRY
catch (IOException ex) {
}//FIN DE CATCH
} }
JOptionPane.showMessageDialog( null, "OPERACION EXITOSA ",
"ANALISIS ", JOptionPane.INFORMATION_MESSAGE ); }
catch(IOException e){
System.out.println(e);
}finally{
try{ //el bloque finally se ejecuta siempre, por eso, si se cierra el fichero
if( fr != null){ //al final del primer try, y ha dado un error antes, pasaría
fr.close(); //al 1er catch y luego saldría, dejándolo abierto. Es conveniente
} //cerrarlo aquí, comprobando que no sea -por un error anterior, como
}catch (IOException e){ // no tener permisos de lectura o que no exista - de valor null.
System.out.println(e);
}
}//FIN DEL WHILE
System.exit (0);}//fin del main
}//fin de la clase
El problema es k me aparecen los siguientes errores:
a) not a statement
b)  ;
a) y b) hacen referencia a la siguiente linea: StringTokenizer st = new StringTokenizer (linea,">" );
c), d) y e) no puede resolver el simbolo  varaible st y hace referencia a : , while(st.hasMoreTokens),a=st.count Tokens();, b=st.nextToken(); respectivamente,,
Entonces no encuentro el error espero me puedar guiar o ayudar
gracias y saludos
:)

1 respuesta

Respuesta
1
El problema lo tienes con las llaves. Lo las estas usando bien y te da errores de compilación. Te recomiendo que cada vez que tengas un while, abras una llave y tabules bien el código que tiene dentro. Lo mismo con los bloques try-catch, if y for.
Aunque podría copiarte el código corregido, no creo que te estuviera haciendo ningún favor, puesto que no es un problema de algoritmia sino de codificación.
Puede que no sea la respuesta que esperabas, pero creo que es la mejor. Si una vez corregido el tema de las llaves sigues teniendo problemas, no dudes en consultarme.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas