lunes, 4 de agosto de 2014

Manejando ficheros con Java


Se aprendera a crear archivos con java, y a guardar datos en estos archivos como si fueran una pequeña base de datos.

Ejemplo basico(con sus respectivos comentarios)
este ejercicio primero crea un archivo, luego venimos e introducimos datos en este archivo y luego abrimos el archivo y mos tramos los datos




package pkg6ejemplosarchivos;

import java.io.*;
import java.lang.*;
import java.util.*;
import javax.swing.*;


public class Main {

    public static void main(String[] args) {
       
        //sirve para crear mi archivo
        File archivo = new File("archivo.txt");
       
        //uso las excepciones por si algun error ocurre a la hora de crear el archivo o escribir en este
        try{
            //creo mi objeto archivo, para interactuar con mi archivo
            PrintWriter escribo = new PrintWriter(new BufferedWriter(new FileWriter(archivo)));
            //escribo texto en mi archivo
            escribo.println("Este es mi archivo");
            escribo.println("Java con ninjaWeb");
            escribo.close();
           
        }catch(IOException ex){
            JOptionPane.showMessageDialog(null, ex);
        }
       
        try{
            BufferedReader leer = new BufferedReader(new FileReader(archivo));
            String cad1,cad2 = new String();
           
            while((cad1=leer.readLine())!=null){
                cad2= cad1+"\n";
                JOptionPane.showMessageDialog(null,cad2);
               
           
            }
           
        }catch(IOException e){
            JOptionPane.showMessageDialog(null, e);
        }
       
    }
   
}



Ejemplo avanzado de creacion de ficheros

el siguiente ejemplo mostrara al usuario dos opciones una para ingresar datos y la otra para leer los datos ya ingresados, al seleccionar la primera opcion nos debe de preguntar cuantos carros queremos guardar, despues entraremos en un ciclo en el cual nos pedira primero la matricula, marca, modelo, color despues al llenar los datos nos preguntara si queremos leer los datos y le damos que si




nombre del proyecto: pkg6empresadeautos

Auto.java

package pkg6empresadeautos;


public class Auto {

    public String matricula;
    public String marca;
    public String modelo;
    public String color;
   
           
           
}


Main.java

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package pkg6empresadeautos;

//importo las librerias a utilizar
import java.io.*;
import java.util.*;
import javax.swing.*;


public class Main {


    public static void main(String[] args) {
       
        List<Auto> autos = new ArrayList<Auto>();
        //creo mi objeto coche utilizando la clase auto
        Auto coche1 = new Auto();
        //creo mi archivo txt
        File archivo=new File("autos.txt");
        //declaro mis variables
        String matricula , marca, modelo, color, numeroAutos;
        int n=0,i, B=1, ok=1;
       
        while(ok==1){
            String b = JOptionPane.showInputDialog("Bienvenido\nque desea hacer\n 1. ingresar auto\n 2. leer autos");       
            B=Integer.parseInt(b);
            while(B<0||B>2){
           
                b = JOptionPane.showInputDialog("Bienvenido\nque desea hacer\n 1. ingresar auto\n 2. leer autos");               
                B=Integer.parseInt(b);                              
                }
           
            if(B==1){
                //ingreso autos, opcion1
                    numeroAutos=JOptionPane.showInputDialog("cuantos Autos desea guardar?");
                    //capturo el numero de autos a ingresar
                    n=Integer.parseInt(numeroAutos);
                   
                    //en caso de ingresar un numero incorrecto.-
                    while(n<0){
                    numeroAutos=JOptionPane.showInputDialog("error: numero de autos debe ser mayor a 0?");
                    n=Integer.parseInt(numeroAutos);
                    }           
                   
                    //hago el barrido para la captura de datos
                    for(i=0;i<n;i++){
                       
                        try{
                            //preparo el archivo a escribir
                            PrintWriter escribir = new PrintWriter(new BufferedWriter(new FileWriter(archivo, true)));
                            //capturo las variables
                            String sal=String.format("Auto %d \n Digite su numero de matricula: " , i + 1);
                            matricula = JOptionPane.showInputDialog(sal);
                            marca=JOptionPane.showInputDialog("Digite la marca: ");
                            modelo=JOptionPane.showInputDialog("digita el modelo");
                            color=JOptionPane.showInputDialog("digita el color");
                           
                            //le paso las variables a mi variable lista
                            coche1.matricula=matricula;
                            coche1.marca=marca;
                            coche1.modelo=modelo;
                            coche1.color=color;
                                                              
                            //imprimo en mi archivo txt
                            escribir.println(matricula);
                            escribir.println(marca);
                            escribir.println(modelo);
                            escribir.println(color);
                           
                            //paso mi variable lista al objeto, para poder jugar con estos datos
                            autos.add(coche1);
                           
                            //cierro la escritura en mi archivo txt
                            escribir.close();
                                   
                           
                        }catch(IOException ex){
                            JOptionPane.showMessageDialog(null, ex);
                        }
                   
                    }
           
            }else if(B==2){
                //en caso de seleccionar la opcion 2 para la lectura de datos
                            try{
                            //preparo mi archivo a leer   
                            BufferedReader leer=new BufferedReader(new FileReader(archivo));
                            //contador
                            int m=0;
                                //rrecorro mi archivo, e capturo las variables
                                while((matricula=leer.readLine()) != null && m<=n ){
                                    marca=leer.readLine();
                                    modelo=leer.readLine();
                                    color=leer.readLine();
                                    //imprimo ñas variables capturada, y las imprimo en pantalla
                                    String salida=String.format("Auto %d \n\n matricula: %s \n marca: %s \n modelo: %s \n color: %s ",m+1,matricula,marca,modelo,color);
                                    JOptionPane.showMessageDialog(null, salida);
                                    m++;
                                }
                           
                            }catch(IOException e){
                                JOptionPane.showMessageDialog(null,e);
                            }
                    }
                    //pregunto si desea continuar
                    String Cont = JOptionPane.showInputDialog("Desea continuar? \n 1.si \n 2.no ");
                    ok=Integer.parseInt(Cont);
                   
                    while(ok<0 || ok>2 ){
                        Cont = JOptionPane.showInputDialog("Error. Desea continuar? \n 1.si \n 2.no ");
                        ok=Integer.parseInt(Cont);
                    }
           
           
        }
       
    }
   
}



No hay comentarios:

Publicar un comentario