Foros del Web » Programación para mayores de 30 ;) » Java »

Buscar un contacto en un txt con java

Estas en el tema de Buscar un contacto en un txt con java en el foro de Java en Foros del Web. Hola buenas a todos!! Estoy haciendo un ejercicio de añadir contactos en un txt en Java. Al añadir el contacto en txt bien, pero cuando ...
  #1 (permalink)  
Antiguo 25/06/2014, 01:58
Avatar de maracuyeaa  
Fecha de Ingreso: febrero-2014
Mensajes: 14
Antigüedad: 10 años, 2 meses
Puntos: 0
Buscar un contacto en un txt con java

Hola buenas a todos!!
Estoy haciendo un ejercicio de añadir contactos en un txt en Java. Al añadir el contacto en txt bien, pero cuando lo voy a buscar no me sale me dice directamente que no se encuentra el archivo, va directamente al else y no se porque, me podéis ayudar? Llevo mucho tiempo atascada aquí.

Código Java:
Ver original
  1. package projdbc1;
  2.    
  3. import java.io.BufferedReader;
  4. import java.io.BufferedWriter;
  5. import java.io.DataInputStream;
  6. import java.io.File;
  7. import java.io.FileInputStream;
  8. import java.io.FileNotFoundException;
  9. import java.io.FileReader;
  10. import java.io.FileWriter;
  11. import java.io.IOException;
  12. import java.io.InputStreamReader;
  13. import java.io.PrintWriter;
  14. import java.sql.ResultSet;
  15. import java.sql.SQLException;
  16.  
  17.  
  18.  
  19.  
  20.     public class Main {
  21.        
  22.         private static String nombre;
  23.         private static String telefono;
  24.         private static ResultSet resultado;
  25.         private static String linea;
  26.         private static java.io.BufferedWriter bufferedWriter;
  27.         static File fichero=new File("/home/Programacion/Agenda.txt");
  28.                      
  29.        
  30.         private static Contactos nuevoContacto;
  31.         public static void main(String[] args) {
  32.            
  33.              BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  34.           int opcion= 0;
  35.            
  36.             do {
  37.                 imprimeMenu();
  38.                 try {
  39.                    
  40.                 //opciones de menu
  41.                  opcion = Integer.parseInt(br.readLine());
  42.                     switch (opcion) {
  43.                         case 1:
  44.                             altaContacto();                        
  45.                             break;
  46.                         case 2:
  47.                             buscaContacto();
  48.                             break;
  49.                         case 3:
  50.                             listaContacto();
  51.                             break;
  52.                         case 4:
  53.                             System.out.println("Gracias por utilizar este servicio....");
  54.                             break;
  55.                            
  56.                         default:
  57.                             System.out.println("Tienes que seleccionar una opción del menú.");
  58.                             break;
  59.                     }
  60.                 } catch (IOException ex) {
  61.                     System.out.println("Excepción. Tienes que seleccionar una opción del menú.");
  62.                      opcion = '0';
  63.                 }
  64.             } while (!(opcion == '4'));
  65.        
  66.            
  67.         }
  68.      
  69.       //se visualiza el menu
  70.         public static void imprimeMenu() {
  71.             System.out.println("1. Crea contacto");
  72.             System.out.println("2. Busca contacto");
  73.             System.out.println("3. Listar contactos");
  74.             System.out.println("4. SALIR");
  75.         }
  76.        
  77.        
  78.      public static void altaContacto() {
  79.             BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  80.                    
  81.        
  82.            try {
  83.             bufferedWriter = new BufferedWriter(new FileWriter("Agenda.txt"));
  84.            
  85.                    
  86.             System.out.println("Nombre contacto:");
  87.             nombre = br.readLine();
  88.                    
  89.             System.out.println("Teléfono contacto:");
  90.             telefono = br.readLine();
  91.            
  92.             //sale pregunta
  93.             System.out.println("Contacto insertado gracias.¿Quieres hacer otra cosa?");
  94.            
  95.             //asi aparece en el txt
  96.             bufferedWriter.append(nombre);         
  97.              bufferedWriter.flush();
  98.              bufferedWriter.append("@"+ telefono);
  99.              bufferedWriter.flush();
  100.                                    
  101.           } catch (IOException e) {
  102.            
  103.              e.printStackTrace(); }
  104.          
  105.        
  106.      }
  107.  
  108.        
  109.            
  110.          
  111.        public static void buscaContacto() throws IOException {
  112.             System.out.println("Inserta el texto a buscar:");
  113.             try {  
  114.                    
  115.                    if(fichero.exists()){  
  116.                        
  117.                       BufferedReader br= new BufferedReader(new FileReader("Agenda.txt"));  
  118.                        System.out.println("Leyendo Fichero");  
  119.                        
  120.                       //Lee el fichero linea a linea hasta llegar a la ultima
  121.                        while((linea= br.readLine())!=null) {  
  122.                        //Imprime la linea leida    
  123.                        System.out.println(linea);                
  124.                        }  
  125.                        System.out.println("*Fin Leer Fichero");  
  126.                        
  127.                        br.close();  
  128.                      }else{  
  129.                        System.out.println("Fichero No Existe");  
  130.                      }  
  131.                } catch (Exception ex) {  
  132.                      
  133.                     System.out.println(ex.getMessage());  
  134.                }  
  135.              }  
  136.        
  137.        
  138.        
  139. //nos sale la lista de contactos de nuestro agenda.txt
  140.        
  141.         public static void listaContacto() {
  142.             System.out.println("Listados de contactos:");
  143.            
  144.                 try {
  145.                 while (resultado.next()) {
  146.                
  147.                  
  148.                 String nombre = resultado.getString("nombre");
  149.                 String telefono = resultado.getString("telefono");
  150.                
  151.                 //se imprime el nombre y el telefono
  152.                 System.out.println(nombre + " " + telefono);
  153.                 }
  154.                 } catch (SQLException ex) {
  155.                 System.out.println("cinco " + ex.getMessage());
  156.                 }
  157.                 }
  158.  
  159.        
  160.  
  161.        
  162.         public static void setNombre(String nombre) {
  163.             Main.nombre = nombre;
  164.         }
  165.        
  166.         public static String setNombre() {
  167.            
  168.             return nombre;
  169.         }
  170.        
  171.            
  172.  
  173.  
  174.         public static void setTelefono(String telefono) {
  175.             Main.telefono = telefono;
  176.         }
  177.  
  178.         public static String getTelefono() {
  179.             return telefono;
  180.         }
  181.  
  182.         public static ResultSet getResultado() {
  183.             return resultado;
  184.         }
  185.  
  186.         public static void setResultado(ResultSet resultado) {
  187.             Main.resultado = resultado;
  188.         }
  189.  
  190.         public static Contactos getNuevoContacto() {
  191.             return nuevoContacto;
  192.         }
  193.  
  194.         public static void setNuevoContacto(Contactos nuevoContacto) {
  195.             Main.nuevoContacto = nuevoContacto;
  196.         }
  197.  
  198.        
  199.     }
  #2 (permalink)  
Antiguo 25/06/2014, 02:14
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Buscar un contacto en un txt con java

Comprueba que el fichero existe con el explorador y cierra el BufferedWriter.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 25/06/2014, 02:20
Avatar de maracuyeaa  
Fecha de Ingreso: febrero-2014
Mensajes: 14
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Buscar un contacto en un txt con java

Sí el fichero si existe!
  #4 (permalink)  
Antiguo 25/06/2014, 03:10
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Buscar un contacto en un txt con java

Creas un File en la variable fichero que apunta a tu directorio home, sin embargo cuando usas el Reader y el Writer en vez de usar la variable fichero, le pasas un nombre de fichero. Lo que estás haciendo es crear un fichero Agenda.txt en el path tu proyecto en vez de en el home, y como lo que compruebas es que existe el del home...

Usa en el Writer y Reader fichero, y cierra el BufferedWritter (close()), todos los flujos I/O deben ser cerrados.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 25/06/2014, 04:26
Avatar de maracuyeaa  
Fecha de Ingreso: febrero-2014
Mensajes: 14
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Buscar un contacto en un txt con java

SÍI Muchísimas gracias era eso,!!pero ahora se me listan los registros bien, pero la función que tengo de buscar no sé me sigue sin salir. Paso el código que cambie cosas!
Y gracias de nuevo!
Código Java:
Ver original
  1. public static void buscaContacto() {
  2.         System.out.println("Buscar contactos:");   
  3.        
  4.         try {
  5.             while (resultado.next()) {
  6.             String nombre = resultado.getString("nombre");
  7.             String telefono = resultado.getString("telefono");
  8.             System.out.println(nombre + " " + telefono);
  9.             }
  10.             } catch (SQLException ex) {
  11.             System.out.println("cinco " + ex.getMessage());
  12.             }
  13.        
  14.  
  15.      }
  16.      
  17.  
  18.            
  19.     //nos sale la lista de contactos de nuestro agenda.txt  
  20.        public static void listaContacto() throws IOException {
  21.             System.out.println("Listar contactos:");
  22.             try {  
  23.                    
  24.                    if(fichero.exists()){  
  25.                        
  26.                       BufferedReader br= new BufferedReader(new FileReader(fichero));  
  27.                        System.out.println("Leyendo Fichero");  
  28.                        
  29.                       //Lee el fichero linea a linea hasta llegar a la ultima
  30.                        while((linea= br.readLine())!=null) {  
  31.                        //Imprime la linea leida    
  32.                        System.out.println(linea);                
  33.                        }  
  34.                        System.out.println("*Fin Leer Fichero");  
  35.                        
  36.                        br.close();  
  37.                      }else{  
  38.                        System.out.println("Fichero No Existe");  
  39.                      }  
  40.                } catch (Exception ex) {  
  41.                      
  42.                     System.out.println(ex.getMessage());  
  43.                }  
  44.              }  
  45.        
  46.          
  47.  
  48.        
  49.        
  50.  
  51.        
  52.  
  53.        
  54.         public static void setNombre(String nombre) {
  55.             Main.nombre = nombre;
  56.         }
  57.        
  58.         public static String setNombre() {
  59.            
  60.             return nombre;
  61.         }
  62.        
  63.            
  64.  
  65.  
  66.         public static void setTelefono(String telefono) {
  67.             Main.telefono = telefono;
  68.         }
  69.  
  70.         public static String getTelefono() {
  71.             return telefono;
  72.         }
  73.  
  74.         public static ResultSet getResultado() {
  75.             return resultado;
  76.         }
  77.  
  78.         public static void setResultado(ResultSet resultado) {
  79.             Main.resultado = resultado;
  80.         }
  81.  
  82.         public static Contactos getNuevoContacto() {
  83.             return nuevoContacto;
  84.         }
  85.  
  86.         public static void setNuevoContacto(Contactos nuevoContacto) {
  87.             Main.nuevoContacto = nuevoContacto;
  88.         }
  89.  
  90.        
  91.     }
  #6 (permalink)  
Antiguo 25/06/2014, 08:27
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Buscar un contacto en un txt con java

La función buscar no funciona porque en ningún momento das opción a buscar algo, sólo pinta lo que hay en el fichero.

Que no salga correctamente se debe a opcion == '4'

'4' no es el número 4, es un caracter que representa al número cuatro, si conviertes directamente un char a int, lo que obtienes es su número de bits, no su valor numérico.

'4' es 52, 'a' es 97

http://2.bp.blogspot.com/-V_W7Joe_vo...igo+ASCII+.gif
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #7 (permalink)  
Antiguo 26/06/2014, 03:07
Avatar de maracuyeaa  
Fecha de Ingreso: febrero-2014
Mensajes: 14
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Buscar un contacto en un txt con java

Muchísimas gracias ya lo acabe!!Todo perfecto :D

Etiquetas: contacto, programa, string, txt
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:26.