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