Regitros en ficheros
Hola tengo un problema con los registros en ficheros,es decir con bajas,altas y modificar regitros.
Estoy haciend una tarea y tengo hech esto hasta el momento.Os muestro el codigo y me comentais como puedo solucionarlo.
Lo que quiero es borrar,actualizar,insertar,modificar regitros que hay en un fichero y lo utilizo desde la aplicacion y tambien insertar nuevos registros.
Esta es la clase del objeto que es un libro,la aplicacion es admnistrar una biblioteca.
- Payan's blog
- Inicie sesión o regístrese para enviar comentarios
Este es el main
import java.util.*;
import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.StringTokenizer;
public class Main {
public static leer teclado=new leer();
public static libro libro2=new libro();
public static void main(String[] args) throws IOException {
String ruta="C:\\Users\\6daw\\Desktop\\d.txt";
ArrayList biblio=new ArrayList();
Main.leefichero(ruta,biblio);
ArrayList autores=new ArrayList();
int opcion=0;
// libro libros=new libro("Don quijote","1","Cervantes");
// biblio.add(libros);
boolean continuar = true;
do{
switch(Main.Menu()){
case 1:
Main.nuevo(biblio);
break;
case 2:
escribefichero(biblio);
continuar=false;
}
}while(continuar);
}
public static int Menu(){
int opcion;
int numopcion = 2;
System.out.println("1- dar de alta un libro");
System.out.println("2- Salir");
do{
opcion=teclado.datoInt();
if(!(opcion<= numopcion && opcion >= 1))
System.out.println("Introduzca una opcion valida");
}while(!(opcion<= numopcion && opcion >=1 ));
return opcion;
}
public static void nuevo(ArrayList biblio) throws IOException{
System.out.println(" ");
System.out.println("Introduzca el codigo");
String codigo=teclado.dato();
if(Main.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);
biblio.add(libro2);
System.out.println(" ");
}else{
System.out.println("El Codigo introducido corresponde a un libro existente");
}
}
public static void listado(ArrayList biblio) throws IOException{
for( int i=0 ; i < biblio.size(); i++){
libro2=(libro)biblio.get(i);
System.out.println("autor: "+libro2.getAutor()+" titulo: "+libro2.getTitulo()+" Estado: "+libro2.muestraEstado());
}
}
public static int existe(ArrayList biblio,String codigo){
int cont=-1;
for( int i=0 ; i < biblio.size(); i++){
libro2=(libro)biblio.get(i);
if(libro2.getCodigo().equals(codigo))
cont=i;
}
return cont;
}
static void escribefichero(ArrayList biblio){
String linea;
try{
FileWriter fw=new FileWriter("C:/Users/6daw/Desktop/d.txt");
BufferedWriter bw=new BufferedWriter(fw);
for( int i=0 ; i < biblio.size() ; i++){
libro2=(libro)biblio.get(i);
linea=libro2.getTitulo()+","+libro2.getCodigo()+","+libro2.getAutor();
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,"/",false);
while(cadena.hasMoreTokens()){
x++;
switch(x){
case 1:
String tit= cadena.nextToken();
libro2.setTitulo(tit);
break;
case 2:
String cod=cadena.nextToken();
libro2.setCodigo(cod);
break;
case 3:
String aut=cadena.nextToken();
libro2.setAutor(aut);
x=0;
break;
}
}
biblioteca.add(libro2);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}