0 votos
por (20 puntos) en Java
Buenas tardes a todos estoy tratando con esto lo de manejo de archichos en java y quiero saber como eliminar una linea de un archivo txt me lo ace bien pasandolo a un archivo auxiliar pero cuando quiero borar el contenido del archivo anterior lo borra y tambien el del archivo auxiliar y esa no es la idea ahora les paso el codigo:

MAIN:
package practica.de.archivos.en.java;

import java.io.IOException;
import java.util.Scanner;



public class PracticaDeArchivosEnJava {
    public static void main(String[] args) throws IOException {
        Scanner entrada=new Scanner(System.in);
        int op=-1;
        int cont;
        String nombre;
        while (op!=0){
        System.out.println("opcion 1:crear un archivo");
        System.out.println("opcion 2:llenar un archivo");
        System.out.println("opcion =");
        op=entrada.nextInt();
        switch(op){
            case 1:
            System.out.println("Nombre del archivo a crear=");
            nombre=entrada.next()+".txt";
            crearArchivo A=new crearArchivo(nombre);
            A.newArchivo();
            break;
            case 2:
                System.out.println("Nombre del archivo a llenar=");
                nombre=entrada.next()+".txt";
                crearArchivo B=new crearArchivo(nombre);
                B.llenarArchivo();
                break;
            case 3:
                System.out.println("Nombre del archivo a llenar=");
                nombre=entrada.next()+".txt";
                System.out.println("lnea a eliminar=");
                cont=entrada.nextInt();
                crearArchivo C=new crearArchivo(nombre);
                C.EliminarLineaDelArchivo(cont);
        }
    }
    
}
}

clase crearArchivo:


package practica.de.archivos.en.java;
import java.io.*;
import java.util.*;

public class crearArchivo {
    
    private String F;
    
    public crearArchivo(String F){
        this.F=F;
    }
    
    public void newArchivo(){
        File f=new File(F);  
        if(!f.exists()){//si el archivo no existe me lo crea
            try{
            f.createNewFile();
            }catch(IOException ex){ex.printStackTrace();}
        }
    }
    
    public void llenarArchivo(){
            try{
                File f=new File(F);
                FileWriter fw=new FileWriter(f,true);
                Scanner entrada=new Scanner(System.in);
                String inf;
                int op=-1;
                if(f.exists()){
                while(op!=0){
                System.out.println("que desea escribir:");
                inf=entrada.next();
                fw.append(inf);
                System.out.println("desea segir escribiendo=");
                op=entrada.nextInt();
                if(op==1){
                    fw.append("\n");
                }
                }
                }
                fw.close();
            }catch(IOException ex){ex.printStackTrace();}
            
        
    }
    
    public void EliminarLineaDelArchivo(int cont2){
        File f=new File(F);
        File nf=new File("B.txt");
        String inf;
        int cont=1;
        if(f.exists()){
           try{
             BufferedWriter bw = new BufferedWriter(new FileWriter("B.txt"));
             FileReader fr=new FileReader(F);
            // FileReader fr2=new FileReader("B.txt");
             BufferedReader b = new BufferedReader(fr);
             //BufferedReader c = new BufferedReader(fr2);
             FileWriter fw=new FileWriter(nf,true);
             nf.createNewFile();
             while((inf=b.readLine())!=null){
                 if(cont!=cont2){
                     if(nf.exists()){
                         fw.append(inf);
                         fw.append("\n");
                     }
                 }
                 else
                     if(cont==cont2){
                     //nf.createNewFile();
                     if(nf.exists()){
                         fw.append("");
                         fw.append("\n");
                     }
                 }
                 ++cont;
             }
             /*while((inf=b.readLine())!=null){
                 bw.write("");
             }
              bw.close();*/
              fw.close();
             b.close();
            }catch(IOException ex){ex.printStackTrace();}
        }
    }
    
    
    
    
    }

Por favor, accede o regístrate para responder a esta pregunta.

Preguntas relacionadas

Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código

Categorías

...