Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Meta en 26 Marzo 2012, 23:54 pm



Título: Manjear archivo.txt con Java
Publicado por: Meta en 26 Marzo 2012, 23:54 pm
Hola:

Estoy con el netbeans usando Java.
Intento crear un menú sencillo, al menos lo intento.
Quiero lograr hacer cosas con un archivo.txt, crearlo y almacenar datos en él, también borrar datos, cosas así pero con Java.

La chapuza que he hecho hasta ahora es esta.
Código
  1. package ficheros;
  2. import java.io.*;
  3. import java.util.*;
  4. import java.text.*;
  5. import java.lang.RuntimeException;
  6.  
  7. public class Main {
  8.  
  9.  
  10.        public FileWriter writer;
  11.        public BufferedWriter buffer;
  12.        public PrintWriter output;
  13.        public int numero = 0;
  14.  
  15.    public static void main(String[] args) {
  16.  
  17.      File archivo = null;
  18.      FileReader fr = null;
  19.      BufferedReader br = null;
  20.  
  21.        while(true)
  22.        {
  23.        Scanner teclado=new Scanner(System.in); // Creamos el objeto teclado.
  24.  
  25.  
  26.        System.out.printf("1. Mostrar la lista de contactos.\n");
  27.        System.out.printf("2. Crear un nuevo contacto.\n");
  28.        System.out.printf("3. Borrar contacto.\n");
  29.        System.out.printf("4. Modificar contacto.\n");
  30.        System.out.println("Introduce número: ");
  31.        int n = teclado.nextInt();
  32.  
  33.            switch(n) {
  34.  
  35.            case 1:
  36.                System.out.printf("Mostrar la lista de contactos.");
  37.                public Abrir();
  38.  
  39.                break;
  40.  
  41.            case 2:
  42.                System.out.printf("Crear un nuevo contacto.");
  43.  
  44.                break;
  45.            case 3:
  46.                System.out.printf("Borrar contacto.");
  47.                break;
  48.            case 4:
  49.                System.out.printf("Modificar contacto.");
  50.                break;
  51.            case 5:
  52.                System.out.printf("Salir del programa.");
  53.  
  54.                break;
  55.            default:
  56.                System.out.printf("Selecciona las opciones del 1 al 5.");
  57.                break;
  58.            }
  59.  
  60.              }
  61.  
  62.     public void abrir (case1,case2)
  63.        throws IOException
  64.        {
  65.        try {
  66.            writer = new FileWriter( "clientes.txt" );
  67.            buffer = new BufferedWriter(writer);
  68.            output = new PrintWriter(writer);
  69.  
  70.        } catch (SecurityException securityException) {
  71.            System.err.println("No tiene permiso para escribir en el fichero.");
  72.            throw securityException;
  73.  
  74.        } catch (FileNotFoundException fileException) {
  75.        System.err.println("Error al crear el fichero.");
  76.        throw fileException;
  77.        }
  78.        }
  79.  
  80.    // Cierre del fichero de texto.
  81.    public void cerrar()
  82.        throws IOException
  83.        {
  84.            if ( output != null ) // Si output es distinto a null (nulo).
  85.            output.close(); // Cierra.
  86.        }
  87.  
  88.     // Escribir los datos de un contacto en el fichero.
  89.    public void escribir (Contacto contacto)
  90.        {
  91.            if (contacto!=null) {
  92.            output.println(contacto.getNombre());
  93.            output.println(contacto.getTelefono());
  94.            }
  95.        }
  96.  
  97. }
  98.  

No continuo porqu eme da errore spor todas partes y eso que está incompleto.


Título: Re: Manjear archivo.txt con Java
Publicado por: [Case] en 27 Marzo 2012, 03:56 am
Estaria bien que pusieras mas especificaciones de los errores que te da, de ante mano me estoy fijando que lanzas IOExceptions pero no las cachas, o me equivoco?.


Título: Re: Manjear archivo.txt con Java
Publicado por: Proteus1989 en 27 Marzo 2012, 09:33 am
writer = new FileWriter( "clientes.txt" );
            buffer = new BufferedWriter(writer);
            output = new PrintWriter(writer);


A printWriter tienes que pasarle buffer por parametro en el constructor y no writer como tienes puesto