Título: ayuda con archivos en java
Publicado por: andrex.125 en 5 Diciembre 2013, 20:41 pm
Hola a todos, tengo un problema con un programa que estoy implementando en java (trabajo de la universidad) lo que tiene que hacer el programa es leer un archivo nombres.txt, después de leer el archivo tengo que buscar un nombre en ese archivo, Si el nombre esta se tiene que copiar a otro archivo llamado Copia.txt, Si el nombre no esta solo tiene que volver a pedirlo. Ya implemente todos lo metodos pero no se me copia el nombre en el archivo Copia.txt. Gracias Archivos3.java import java.io.*; import java.util.*; import javax.swing.*;
public class Archivos3 { static Vector nombres = new Vector(); static BufferedReader entrada; static FileWriter salida =null; static String nombreCopiar = null; static String linea; static File archivo = new File("src/archivos/nombres.txt"); public static void main(String[] args) { leerArchivo(nombres); buscarNombre(nombres); copiaArchivo(nombres);
} public static void copiaArchivo(Vector n){ try { salida=new FileWriter("Copia.txt"); if(buscarNombre(n)==1){ salida.write(nombreCopiar); } else if (buscarNombre(n)==2){ JOptionPane.showMessageDialog(null, "el nombre no se encuentra"); buscarNombre(nombres); } }catch (IOException ex) { System.out.println(ex); }finally{ //cerrar los flujos de datos if(entrada!=null){ try{ entrada.close(); }catch(IOException ex){} } if(salida!=null){ try{ salida.close(); }catch(IOException ex){} } System.out.println("el bloque finally siempre se ejecuta"); } try { //espera la pulsación de una tecla y luego RETORNO System.in.read(); }catch (Exception e) { } }
//leo el archivo y lo meto en un Vector public static void leerArchivo(Vector n) { try { entrada = new BufferedReader(new FileReader(archivo)); while (entrada.ready()) { linea = entrada.readLine(); n.add(linea); } }catch (IOException ex) { System.out.println(ex); } finally { //cerrar los flujos de datos if (entrada != null) { try { entrada.close(); } catch (IOException ex) { } } System.out.println("el bloque finally siempre se ejecuta"); } } //busco en el Vector si el nombre se encuentra public static int buscarNombre(Vector n){ String x = JOptionPane.showInputDialog(null, "ingrese el nombre"); int c = 0; try { int pos = n.indexOf(x); if (x.equals(n.elementAt(pos)) && (pos > -1)) { System.out.println(n.elementAt(pos)); nombreCopiar = (String) n.elementAt(pos); //hago casting para pasar de objeto a String. c=1; } else{ nombreCopiar = null; c=2; } } catch (Exception e) { System.out.println("nombre no esta"); } return c; } }
Título: Re: ayuda con archivos en java
Publicado por: Danyfirex en 5 Diciembre 2013, 21:35 pm
Hola no se java pero me parece que puedes hacer algo mas simple. byte[] data = new byte[(int)file.length()]; fis.read(data); fis.close(); // if filetr.indexOf(nombre) { writer.println("nombre); writer.close(); }
PD: el código no es funciona. solo es una idea. saludos
Título: Re: ayuda con archivos en java
Publicado por: ThinkByYourself en 6 Diciembre 2013, 13:51 pm
A lo mejor este breve código te puede ayudar. String s_origen = "/home/universitariosQueNoSabenBuscarEnGoogle/ficheroOrigen.txt", s_destino = "/home/universitariosQueNoSabenBuscarEnGoogle/ficheroDestino.txt"; try {String linea ="", contenido ="", cosaquequierebuscar ="a saber"; if(contenido. indexOf(cosaquequierebuscar ) != -1) {(escritor = new FileWriter(new File(s_destino ))). write(cosaquequierebuscar );escritor. close();} }
No lo he probado, puede que no funcione del todo, o que no haga lo que quieres. En fin. Un saludoooo
Título: Re: ayuda con archivos en java
Publicado por: lagg en 7 Diciembre 2013, 18:57 pm
Todavía estoy empezando asi que perdonar si digo alguna tonteria :P ¿Porque al leer el fichero si entrada es distinto de null cierras el flujo? no seria if (entrada==null)?
if (entrada != null) { try { entrada.close(); } catch (IOException ex) { } }
Otra cosa como guardas los nombre en tu archivo nombres.txt?
Título: Re: ayuda con archivos en java
Publicado por: Leyer en 9 Diciembre 2013, 20:33 pm
@lagg
Esta haciendo la comprobación de que entrada!=null,por que si entrada es distinto de null quiere decir que el archivo se ha podido leer correctamente y no a habido problemas, y como ya se abrieron los flujos I/O se procede a cerrar el flujo.
|