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
:)
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 de krlosnow
1