ayuda con borrar el contenido de un File

Iniciado por .rn3w., 14 Septiembre 2011, 03:05 AM

0 Miembros y 1 Visitante están viendo este tema.

.rn3w.

pretendo hacer un prototipo del juego el ahorcado lo que pido es que me ayuden a corregir el code en el metodo guardar lo que tiene que hacer el metodo guardar es lo siguiente: primero borrar todo su contenido del archivo y luego guardar la palabra.
gracias de antemano...

Código (java) [Seleccionar]
import java.util.*;
import java.io.*;
public class ahorcado {

private String palabra;
private String copia;
private String acertijo;
private int vidas;
File archivo;
public ahorcado(int v){
vidas=v;
}

public String cambiandoPalabra(String pal){
palabra=pal;
return palabra;
}
   
public String [] comparar(char c){
       ArrayList<String> lista= new ArrayList<String>();
       int tam=palabra.length()-1;
       ArrayList<Integer> indice= new ArrayList<Integer>();
       String [] resultado=new String[tam+1];
       copia="";
       
       if(vidas==5){
           for(int z=0; z<=tam; z++){
               copia=copia+"*";
           }
           guardar("ahorcado");
       }    
       copia=recuperar("ahorcado");
       System.out.println(copia);
       if(vidas>0 || palabra!=copia){
       for(int a=0; a<=tam; a++){
           if(palabra.charAt(a)==(c)){
               resultado[a]=c+"";
           }
           else{
           resultado[a]="*";
           
           }
       }
       for(int b=0; b<=tam; b++){
        copia=copia+resultado[b];  
       }
       System.out.println(copia);
       guardar("ahorcado");
       vidas--;
   }
       
     
       return resultado;
   }
   
   public void guardar(String nombreTabla){
     
       archivo= new File ("D:\\"+nombreTabla+".txt");
      try{
      archivo.delete();
      archivo= new File ("D:\\"+nombreTabla+".txt");
      FileWriter escritor= new FileWriter(archivo);
      BufferedWriter auxescritor= new BufferedWriter(escritor);
   
      auxescritor.write(copia);
     
      auxescritor.close();
   }
   catch(Exception e){
       e.printStackTrace();
   }
   
   }
   public String recuperar(String nombreTabla){
      ArrayList<String> almacen= new ArrayList<String>();
       archivo= new File ("D:\\"+nombreTabla+".txt");
        String linea="";
        String linea0="";
      try{
         
      FileReader leedor= new FileReader(archivo);
      BufferedReader auxLeer= new BufferedReader(leedor);
      while((linea=auxLeer.readLine())!=null){
      almacen.add(linea);
   }
   
   }
   catch(Exception e){
       e.printStackTrace();
   }
   linea0=almacen.get(0);
   return linea0;
   }
}

Valkyr

Prácticamente como lo has hecho haría bien la tarea, aunque he estado mirando y también puede hacerse de esta forma:

Código (java) [Seleccionar]

File archivo = new File("C:\\Users\\Humberto\\Documents\\Humberto\\prueba.txt");
if(archivo.exists() && archivo.delete()){
System.out.println("Borrado");
try {
if(archivo.createNewFile()){
System.out.println("Creado");
        }
                else{
System.out.println("Imposible crear");
}
} catch (IOException e) {
e.printStackTrace();
}
}
else{
System.out.println("No borrado");
}


Saludos.

.rn3w.

hicieron la prueba del code???
me dan sugeriencias para arreglarlo???
por que sigue sin hacer lo que yo quiero!!!!!!!!!!!!
saludos ...

Valkyr

Pensaba que con lo que te había puesto quedaría claro, pero bueno, sería algo así:

Código (java) [Seleccionar]

public void guardar(String nombreTabla){
       
       File archivo= new File ("C:\\Users\\Humberto\\Documents\\Humberto\\prueba.txt");
       try{
       if(archivo.exists()){
              if(archivo.delete()){
                     if(archivo.createNewFile()){
                            FileWriter escritor = new FileWriter(archivo);
                            BufferedWriter auxescritor = new BufferedWriter(escritor);
                            auxescritor.write("Esto es una prueba!!");
                            auxescritor.close();
                     }
                     else
                            System.out.println("Imposible crear archivo vacío");

              }
              else
                     System.out.println("Imposible borrar archivo");
       }
       else
              System.out.println("El archivo no existe");
}catch(IOException e){

}
}


Este código a mi me funciona perfectamente.

Saludos.

.rn3w.

muchas gracias por el aporte pero sigue sin hacer lo que yo deseo
tareas que deseo que haga:
1) entrada hola y en el documento que salga **** el caracter a buscar es 'a'
2) a existe en "hola" entonces en el documento ***a ahora el caracter a buscar es 'o'
3) o existe en "hola" entonces en el documento primero lo borro todo y recien lo guardo  *o*a, ahora el caracter a buscar es 'h'

3) h existe en "hola" entonces en el documento primero lo borro todo y recien lo guardo  ho*a y asi sucesivamente... gracias

Valkyr

Pues con el código que te he puesto lo puedes hacer perfectamente.

El código hace lo siguiente:

Crea un objeto de tipo File especificandole la ruta del archivo donde tendrás guardado lo que dices o lo tendrás vacío de primeras. Entonces comprobamos que el archivo exista, sí existe entonces lo borramos, sí se ha borrado correctamente, creamos un archivo nuevo vacío con el mismo nombre, si se ha creado correctamente entonces escribimos lo que queramos en él.

El código cumple con lo que tú estás pidiendo, que es borrar el contenido y escribir algo en el archivo, ahora tienes tú que adaptarlo a lo que quieres exactamente, es decir, si quieres escribir *o*a o cosas así. Además no es algo que tenga gran complejidad.

Saludos.