Correccion
Hola
Estoy haciendo un proyecto para clase, un banco de pruebas reducido,al pulsar uno de los botones de la interfaz se ha de abrir un filechooser para elegir un archivo de texto q contiene números y ordenar estos (puede haber más de un número en una misma lÃnea,si es asi se separan por espacios en blanco).El caso es q tengo errores en la implementacion del ActionPerformer de ese boton y no soy capaz a encontrarlos podrian ayudarme?El codigo es el siguiente
void BotonOrdenacion_actionPerformed(ActionEvent e) {
/**Variable para los tiempos*/double timeInit;
/**Variable para los tiempos*/double timeFinal;
/**Variable para los tiempos*/double tiempoTotal;
/**Ruta obtenida del archivo a ordenar*/String directorio = new String();
/**Nombre del archivo a ordenar*/String archivo = new String();
/**Ruta completa que se debe abrir*/String abre = new String();
FileDialog fd = new FileDialog (Frame.this, "Elige el archivo a ordenar");
fd.show();
File f = new File(fd.getDirectory(), fd.getFile());
/**Directorio donde está el archivo a ordenar*/directorio = fd.getDirectory();
/**Nombre del archivo*/archivo = fd.getFile();
/**Ruta completa del archivo*/abre = directorio+archivo;
/**Se abre el archivo y se meten los números en el vector para luego crear
el archivo resultado*/
StringTokenizer numeros[];
int numerosInt[];
FileReader fr = new FileReader(abre);
BufferedReader entrada = new BufferedReader(fr);
try{
FileReader fr = new FileReader(abre);
BufferedReader entrada = new BufferedReader(fr);}
catch(java.io.FileNotFoundException fnfex){
CampoEstado.setText("Error al abrir el archivo: ");
}
Vector leido=new Vector(10);
try{
while (entrada.ready())
leido.addElement(entrada.readLine());
entrada.close();
}
catch(java.io.IOException ioex){
try{
FileWriter fw2 = new FileWriter(directorio+"errores.txt",true);
BufferedWriter bw2 = new BufferedWriter(fw2);
PrintWriter errores = new PrintWriter(bw2, true);
bw2 = new BufferedWriter(new FileWriter(directorio+"errores.txt", true));
errores = new PrintWriter(bw2);
errores.println("Se ha producido un error al intentar leer una linea del ficheron");
errores.println("El error ha sido "+e.toString());
errores.close();
}
catch (java.io.IOException ioe){}
}
leido.trimToSize();
numeros=new StringTokenizer[leido.size()];
Enumeration enum=leido.elements();
int i=0;
while (enum.hasMoreElements()){
numeros[i]=new StringTokenizer((String)enum.nextElement()," ");
i++;
}
Vector numerosInteger=new Vector(10);
for (int j=-1;++j<numeros.length;){
while (numeros[j].hasMoreTokens())
numerosInteger.addElement(new Integer(numeros[j].nextToken()));
}
numerosInteger.trimToSize();
numerosInt=new int[numerosInteger.size()];
enum=numerosInteger.elements();
i=0;
while (enum.hasMoreElements()){
numerosInt[i]=((Integer)enum.nextElement()).intValue();
i++;
}
try
{
FileWriter fw = new FileWriter("resultado.txt");
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter resultado = new PrintWriter(bw);
bw = new BufferedWriter(new FileWriter("resultado.txt", true));
resultado = new PrintWriter(bw);
resultado.println("Los números ordenados son:");
for (int j=-1;++j<numerosInt.length;)
resultado.println("<"+numerosInt[j]+">");
resultado.println("Fin");
resultado.close();
}
catch (java.io.IOException ioex){}
}};
Mil gracias de antemano
Estoy haciendo un proyecto para clase, un banco de pruebas reducido,al pulsar uno de los botones de la interfaz se ha de abrir un filechooser para elegir un archivo de texto q contiene números y ordenar estos (puede haber más de un número en una misma lÃnea,si es asi se separan por espacios en blanco).El caso es q tengo errores en la implementacion del ActionPerformer de ese boton y no soy capaz a encontrarlos podrian ayudarme?El codigo es el siguiente
void BotonOrdenacion_actionPerformed(ActionEvent e) {
/**Variable para los tiempos*/double timeInit;
/**Variable para los tiempos*/double timeFinal;
/**Variable para los tiempos*/double tiempoTotal;
/**Ruta obtenida del archivo a ordenar*/String directorio = new String();
/**Nombre del archivo a ordenar*/String archivo = new String();
/**Ruta completa que se debe abrir*/String abre = new String();
FileDialog fd = new FileDialog (Frame.this, "Elige el archivo a ordenar");
fd.show();
File f = new File(fd.getDirectory(), fd.getFile());
/**Directorio donde está el archivo a ordenar*/directorio = fd.getDirectory();
/**Nombre del archivo*/archivo = fd.getFile();
/**Ruta completa del archivo*/abre = directorio+archivo;
/**Se abre el archivo y se meten los números en el vector para luego crear
el archivo resultado*/
StringTokenizer numeros[];
int numerosInt[];
FileReader fr = new FileReader(abre);
BufferedReader entrada = new BufferedReader(fr);
try{
FileReader fr = new FileReader(abre);
BufferedReader entrada = new BufferedReader(fr);}
catch(java.io.FileNotFoundException fnfex){
CampoEstado.setText("Error al abrir el archivo: ");
}
Vector leido=new Vector(10);
try{
while (entrada.ready())
leido.addElement(entrada.readLine());
entrada.close();
}
catch(java.io.IOException ioex){
try{
FileWriter fw2 = new FileWriter(directorio+"errores.txt",true);
BufferedWriter bw2 = new BufferedWriter(fw2);
PrintWriter errores = new PrintWriter(bw2, true);
bw2 = new BufferedWriter(new FileWriter(directorio+"errores.txt", true));
errores = new PrintWriter(bw2);
errores.println("Se ha producido un error al intentar leer una linea del ficheron");
errores.println("El error ha sido "+e.toString());
errores.close();
}
catch (java.io.IOException ioe){}
}
leido.trimToSize();
numeros=new StringTokenizer[leido.size()];
Enumeration enum=leido.elements();
int i=0;
while (enum.hasMoreElements()){
numeros[i]=new StringTokenizer((String)enum.nextElement()," ");
i++;
}
Vector numerosInteger=new Vector(10);
for (int j=-1;++j<numeros.length;){
while (numeros[j].hasMoreTokens())
numerosInteger.addElement(new Integer(numeros[j].nextToken()));
}
numerosInteger.trimToSize();
numerosInt=new int[numerosInteger.size()];
enum=numerosInteger.elements();
i=0;
while (enum.hasMoreElements()){
numerosInt[i]=((Integer)enum.nextElement()).intValue();
i++;
}
try
{
FileWriter fw = new FileWriter("resultado.txt");
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter resultado = new PrintWriter(bw);
bw = new BufferedWriter(new FileWriter("resultado.txt", true));
resultado = new PrintWriter(bw);
resultado.println("Los números ordenados son:");
for (int j=-1;++j<numerosInt.length;)
resultado.println("<"+numerosInt[j]+">");
resultado.println("Fin");
resultado.close();
}
catch (java.io.IOException ioex){}
}};
Mil gracias de antemano