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();}
}
}
}