los bancos o para los bancos se crean archivos con los clientes y sus pagos o sus cargos, estos se envian y procesan para realizar los cargos sobre nuestras tdc o tdd (Domiciliacion)
estos archivos tienen ciertas caracteristicas como: alinear los nombres a la derecha, rellenar de espacios un texto, longitudes fijas, rellenar con caracteres un texto, colocar encabesados etc...
A continuacion veremos algunas formas de realizar estos benditos archivos
1.- supongamos una clase que se dedicara a crear un archivo y escribir sobre el.
public class Escritura {
String ruta;
String archivo;
private FileWriter fichero;
private PrintWriter pw;
public void abrirArchivo() {
try {
fichero = new FileWriter(ruta + File.separator + archivo);
pw = new PrintWriter(fichero);
} catch (IOException e) {
System.out.println("Error al abrir archivo");
}
}
public void cerrarArchivo() {
try {
if (fichero != null) {
fichero.close();
}
} catch (IOException e) {
System.out.println("error al cerrar archivo");
}
}
public void escribir(String texto) {
if (fichero != null) {
pw.println(texto);
}else{
System.out.println("El archivo no esta abierto");
}
}
}
2.- supongamos ahora una clase en la cual tendremos los datos que contendra el archivo a crear
class Bean{
private String nombre;
private String apellido;
private String edad;
private String telefono;
// con sus metodos get y set
}
3.- nos encontramos ahora un detalle, ese bean se tendra que escribir sobre un archivo, pero nuestra clase de escritura escribe String, por tanto tenemos que agrupar nuestros 4 datos en una sola variable que sera la que se escriba
public String toString(){
return nombre + apellido + edad + telefono;
}
4.- ahora tenemos algunas restricciones para crear nuestro archivo
- El nombre tiene que ser maximo de 10 caracteres, si es menor a 10, se llenaran las posiciones restantes con espacios
- El apellido tiene que ser maximo 20 caracteres, si es menor a 20, se llenaran las posiciones restantes con espacions
- La edad es maximo 2 caracteres, si la edad es menor a 10, se pondra un 0 a la izquierda: 8 años > 08
- El telefono es maximo 8 caracteres, rellenado con espacios
5.- para cumplir nuestras condiciones, modifiquemos nuestros metodos set
public void setNombre(String nombre) {
if(nombre==null){
nombre = " ";
}
else if(nombre.length()<10){
do{
nombre = nombre.concat(" ");
}while(nombre.length()<=10);
}else if(nombre.length()>10){
nombre = nombre.substring(0,10);
}
this.nombre = nombre;
}
public void setApellido(String apellido) {
if(apellido==null){
apellido = " ";
}
else if(apellido.length()<20){
do{
apellido = apellido.concat(" ");
}while(apellido.length()<=20);
}else if(apellido.length()>20){
apellido = apellido.substring(0,20);
}
this.apellido = apellido;
}
public void setEdad(String edad) {
if(edad==null){
edad = " ";
}else if(edad.length()<2){
edad = "0"+edad;
}else if(edad.length()>2){
edad = edad.substring(0,2);
}
this.edad = edad;
}
public void setTelefono(String telefono) {
if(telefono==null){
telefono = " ";
}
else if(telefono.length()<8){
do{
telefono = telefono.concat(" ");
}while(telefono.length()<=8);
}else if(telefono.length()>8){
telefono = telefono.substring(0,8);
}
this.telefono = telefono;
}
NOTA: QUE TREMENDO CHOROTE NO ???? ( YA VEREMOS FORMAS SUPER SENSILLAS DE REALIZAR ESTO)
6.- hay que crear una clase con su main, hacer instancia de las 2 clases anteriores, darles valores a sus variables
public static void main(String args[]){
Bean miBean = new Bean();
Escritura miEscritura = new Escritura();
miBean.setNombre("Ing. Fher");
miBean.setApellido("Java - Limos . Blogspot");
miBean.setEdad("23");
miBean.setTelefono("12345678");
miEscritura.archivo="JavaLimos.txt";
miEscritura.ruta="D:";
miEscritura.abrirArchivo();
miEscritura.escribir(miBean.toString());
miEscritura.cerrarArchivo();
}
7.- al mandar escribir, llamamos al metodo toString que sobreescribimos
al final nuestro archivo quedaria algo como
Ing. Fher Java - Limos . Blogs2312345678
8.- si se dan cuenta, Java - Limos . Blogspot rebaso los 20 caracteres y fue cortado a Java - Limos . Blogs
ESTO ES MUY UTIL, PERO SI LAS LONGITUDES CAMBIAN, OBIAMENTE TENEMOS QUE RECOMPILAR NUESTRO PROGRAMA :(
No hay comentarios:
Publicar un comentario