Me ayudan con este codigo

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.StringTokenizer;
import java.util.logging.Level;
import java.util.logging.Logger;
import tienda.Usuarios.novalidoUsuarioException;

/**
 *
 * @author Payan
 */

public class Tienda {
public static leer teclado=new leer();
public static  Usuarios cliente=new Usuarios();
    /**
     * @param args the command line arguments
     */

    public static void main(String[] args) throws novalidoUsuarioException, IOException {

  String ruta="C:\\Documents and Settings\\Pq\\Escritorio\\biblioteca.txt";
       ArrayList <Usuarios> biblio=new ArrayList();
       
       Tienda.leefichero(ruta,biblio);  
   
       System.out.println(cliente.get_nombre()+"/"+cliente.get_direccion()+"/"+cliente.get_idUsuario());
       
       Tienda.nuevo(biblio);
       Tienda.escribefichero(biblio);

     
    }

   
   
   
   
      public static void nuevo(ArrayList biblio) throws IOException{

        System.out.println(" ");
    System.out.println("Introduzca el codigo");
    String codigo=teclado.dato();
    if(Tienda.existe(biblio, codigo)==-1){
        System.out.println(" ");
        System.out.println("Introduce el Titulo");
        String titulo=teclado.dato();
        titulo=titulo.trim();
        titulo=titulo.toUpperCase();
        System.out.println(" ");
        System.out.println("Introduce el Autor");
        String autor=teclado.dato();
     
//       libro2=new libro(titulo,codigo,autor,fecha,nif,0,false);
            cliente=new Usuarios(titulo,codigo,autor);
        biblio.add(cliente);
        System.out.println(" ");
    }else{
        System.out.println("El Codigo introducido corresponde a un libro existente");
    }

    }
   
   
   
       public static int existe(ArrayList biblio,String codigo){
        int cont=-1;

        for( int i=0 ; i < biblio.size(); i++){
            cliente=(Usuarios)biblio.get(i);
            if(cliente.get_idUsuario().equals(codigo))
                cont=i;

    }
        return cont;
    }
   
   
     static void escribefichero(ArrayList biblio){
    String linea;

    try{
        FileWriter fw=new FileWriter("C:/Documents and Settings/Pq/Escritorio/biblioteca.txt");
        BufferedWriter bw=new BufferedWriter(fw);
        for( int i=0 ; i < biblio.size() ; i++){
            cliente=(Usuarios)biblio.get(i);
            linea=cliente.get_nombre()+","+cliente.get_direccion()+","+cliente.get_idUsuario();
       bw.write(linea);
       bw.newLine();
             
        }
        bw.flush();
        bw.close();
        fw.close();
    }
    catch(IOException ex){

         System.out.println("fallo al escribir");
    }

    }

   
   
    public static void leefichero(String ruta ,ArrayList biblioteca)  {
 
 
        try {
          FileReader  fr = new FileReader(ruta);
          BufferedReader br=new BufferedReader (fr);
          String linea;
    int x=0;

            while ((linea = br.readLine()) != null) {
                StringTokenizer cadena=new StringTokenizer(linea,"/",true);
                while(cadena.hasMoreTokens()){
                    x++;
                switch(x){
                    case 1:
                        String tit= cadena.nextToken();
                        cliente.set_nombre(tit);
                        break;
                    case 2:
                        String cod=cadena.nextToken();
                        cliente.set_direccion(cod);
                        break;
                    case 3:
                        String aut=cadena.nextToken();
                        cliente.set_idUsuario(aut);
                        x=0;
                        break;
                          }

                }
                biblioteca.add(cliente);

            }

        } catch (FileNotFoundException ex) {
            Logger.getLogger(Tienda.class.getName()).log(Level.SEVERE, null, ex);
        }
        catch (IOException ex) {
            Logger.getLogger(Tienda.class.getName()).log(Level.SEVERE, null, ex);
        }
   
   

       
    }

}

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Payan

La parte del main es un

La parte del main es un ejemplo luego pondre un menu y tal ..
Lo que me curre es que el archivo cuando esta vacio me lo escribe pero cuando quiero utilizarlo con algun dato me da error
Me podeis hechar una mano xD,Lo que quiero hacer es que pueda utilzar siempre ese fichero y poder sobreescribir en el machando lo que
haya ,ya que al iniciar la aplicacion me leera lo que hay y en el menu tendre la opcion de borrarlo entero o alguna parte y los regitros que agrege se puedan escrbir en el archivo.
Un saludoo amigos!

Imagen de Payan

para guardar un arraylist en

para guardar un arraylist en un fichero y luego leer de ese fichero ,poder modificarlo y volver a guardar encima de ese fichero borrando lo anterior
o siguiendo lo que habia?xD

Segun la

Segun la documentacion:
http://docs.oracle.com/javase/6/docs/api/java/io/FileWriter.html#FileWriter(java.io.File,%20boolean)

pasa true como segundo parametro a FileWriter para seguir escribiendo en un fichero que ya existe.

public FileWriter(File file,
                  boolean append)
           throws IOException

    Constructs a FileWriter object given a File object. If the second argument is true, then bytes will be written to the end of the file rather than the beginning.

    Parameters:
        file - a File object to write to
        append - if true, then bytes will be written to the end of the file rather than the beginning
    Throws:
        IOException - if the file exists but is a directory rather than a regular file, does not exist but cannot be created, or cannot be opened for any other reason
    Since:
        1.4

Imagen de Payan

si anulo el metodo de lectura

si anulo el metodo de lectura me escribe perfectamente cada registro y cada vez que utilzo el metodo escribir me funciona
pero al utilizar el metodo de lectura,me da fallo al utilizarlo la segunda vez,me da fallo nullpointerexception y me sobrescribe varias
veces los registros.

Cierra los recursos abiertos

Cierra los recursos abiertos al terminar de leer:

          FileReader  fr = new FileReader(ruta);
          BufferedReader br=new BufferedReader (fr);

          br.close();
          fr.close();

Imagen de Payan

sigo sin poder sacarlo...

sigo sin poder sacarlo...

alguien que me ayude con un ejemplo ,solo es leer el fichero

ejemplo de lo que hay en el fichero:
jose/perez/01
y al leerlo se me agregue a un arraylist y al escribirlo de nuevo machaque lo que haya en el fichero en
este caso es : jose/perez/01 y que si lo he modificado,salga la modificacion,si lo he eliminado no salga y si
he agregado algun usuario mas ,pues se agrege seguidamente..

un saludo.xD

Imagen de Payan

alguien sabe como

alguien sabe como solucionarlo ? Please ....

Imagen de Payan

please!xD Ayuda!!!!!

please!xD Ayuda!!!!!

Imagen de Sr. Negativo

Re: please!xD Ayuda!!!!

Mínimo pon TODO el código:

Estas importando un paquete:
import tienda.Usuarios.novalidoUsuarioException; y no sabemos para que es xD

No hay magos aquí.

0_o

Imagen de Payan

OK ahora lo pongoo xDD

OK ahora lo pongoo xDD ,llevas razon!jej

Imagen de Payan

Ese paquete no deberia

Ese paquete no deberia haberlo importado, no se si eso sera el error ,que no creo.
la clase que falta de este trabajo es esta y la que utilizo para leer,pero la de leer no creo que haga falta si es asi
dimelo y la subo. un saludooo!xD

public class Usuarios {

   
    private String idUsuario;
    private String nombre;
    private String direccion;
 
 

    public Usuarios(){
       
    }

public Usuarios(String idUsuario,String nombre,String direccion){
           this.nombre=nombre;
           this.idUsuario=idUsuario;
           this.direccion=direccion;
           
       }
   public  void  set_idUsuario(String idUsuario){
      this.idUsuario=idUsuario;
           
       }
          public  String get_idUsuario(){
            return idUsuario;
        }

           public  void  set_nombre(String nombre){
      this.nombre=nombre;
           
       }
          public  String get_nombre(){
            return nombre;
        }

         public  void  set_direccion(String direccion){
      this.direccion=direccion;
           
       }
          public  String get_direccion(){
            return direccion;
        }
         

}

   class novalidoUsuarioException  extends Exception{
    public novalidoUsuarioException (){
        super("No dejes en blanco el usuario");
    }
}
   

si necesitais que os aclare algo mas ,solo teneis que decirmelo ..xD