elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  ayuda con archivos en java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con archivos en java  (Leído 2,144 veces)
andrex.125

Desconectado Desconectado

Mensajes: 19


Ver Perfil
ayuda con archivos en java
« 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
Código:
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;
       
}
    }


En línea

Danyfirex


Desconectado Desconectado

Mensajes: 493


My Dear Mizuho


Ver Perfil
Re: ayuda con archivos en java
« Respuesta #1 en: 5 Diciembre 2013, 21:35 pm »

Hola no se java pero me parece que puedes hacer algo mas simple.

Código
  1.  String nombre = JOptionPane.showInputDialog(null, "ingrese el nombre");
  2.    File file = new File("File.txt");
  3.    FileInputStream fis = new FileInputStream(file);
  4.    byte[] data = new byte[(int)file.length()];
  5.    fis.read(data);
  6.    fis.close();
  7.  
  8.    //
  9.    String filestr = new String(data, "UTF-8");
  10.  
  11. if filetr.indexOf(nombre) {
  12.  
  13. PrintWriter writer = new PrintWriter("copia.txt", "UTF-8");
  14. writer.println("nombre);
  15. writer.close();
  16. }
  17.  


PD: el código no es funciona. solo es una idea.


saludos


En línea

ThinkByYourself

Desconectado Desconectado

Mensajes: 191


Ver Perfil
Re: ayuda con archivos en java
« Respuesta #2 en: 6 Diciembre 2013, 13:51 pm »

A lo mejor este breve código te puede ayudar.
Código
  1. String s_origen = "/home/universitariosQueNoSabenBuscarEnGoogle/ficheroOrigen.txt", s_destino = "/home/universitariosQueNoSabenBuscarEnGoogle/ficheroDestino.txt";
  2. try {String linea="", contenido="", cosaquequierebuscar="a saber";
  3. FileWriter escritor;
  4. while((linea = new BufferedReader(new InputStreamReader(new FileInputStream(new File(s_origen)))).readLine() ) != null) {contenido += linea;}
  5. if(contenido.indexOf(cosaquequierebuscar) != -1) {(escritor = new FileWriter(new File(s_destino))).write(cosaquequierebuscar);escritor.close();}
  6. }catch(Exception ex) {System.out.println("Algo falló");}
  7. }
  8.  
No lo he probado, puede que no funcione del todo, o que no haga lo que quieres. En fin.
Un saludoooo
« Última modificación: 6 Diciembre 2013, 13:54 pm por NoBullshit » En línea

No te voy a engañar.
Todos hemos sido programados para normalizar la psicopatía de las élites económicas y políticas, y para realimentar su patrón de ciega codicia.
lagg

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: ayuda con archivos en java
« Respuesta #3 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?
« Última modificación: 7 Diciembre 2013, 19:03 pm por lagg » En línea

Leyer


Desconectado Desconectado

Mensajes: 786


leyer@elhacker.net


Ver Perfil WWW
Re: ayuda con archivos en java
« Respuesta #4 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.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Buscar archivos con java
Java
egyware 6 25,430 Último mensaje 31 Agosto 2007, 19:33 pm
por egyware
Manejo de archivos en java
Java
Principios en C 2 4,208 Último mensaje 14 Junio 2011, 04:31 am
por dakomt
Trabajar con archivos xml en java!!!!
Java
01munrra 5 4,539 Último mensaje 23 Enero 2012, 00:37 am
por Littlehorse
Escritura con archivos JAVA
Java
rommel89 1 2,726 Último mensaje 19 Julio 2012, 07:05 am
por rommel89
Java Archivos texto(Ayuda).
Java
javitus 2 2,600 Último mensaje 4 Marzo 2013, 02:36 am
por javitus
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines