Filtro CPL Polarizado ventajas

Ejemplo de archivos binarios en Java - lectura y escritura seek

Ejemplo de archivos binarios en Java - lectura y escritura
archivos binarios en Java lectura y escritura
lectura y escritura de archivos binarios en java

Les comparto un ejemplo de archivos binarios en Java
package archivobinario;

import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Scanner;

public class ArchivoBinario {

    RandomAccessFile arch = null;
    Scanner teclado = new Scanner(System.in);
    int cuantos = 0;
    public ArchivoBinario() {
        try {
            arch = new RandomAccessFile("doubles.bin", "rw");//se crea archivo aleatorio
        } catch (Exception e) {
            System.out.println("Error:"+e.getMessage());
        }
    }
    
    /*
    Metodo que recibe el total de datos a ingresar al archivo
    */
    public void agregarDatos(int cuantos) {
        double dato;
        this.cuantos = cuantos;

        try {
            //arch.seek(0);
            for (int i = 0; i < cuantos; i++) {//ciclo que pide los datos
                System.out.println("Ingreso el dato [" + (i + 1) + "]");
                dato = teclado.nextDouble();
                arch.writeDouble(dato);//se escribe el dato al archivo
            }
        } catch (Exception e) {
            System.out.println("Error agregar");
        }

    }

    public void mostrarArribaAbajo() {
        System.out.println("\nDe arriba a abajo");
        try {
            arch.seek(0);
            double a=0;
            a = arch.readDouble();
            System.out.println(""+arch.getFilePointer());
            while (arch != null) {
                System.out.println("" + a);
                a = arch.readDouble();
                System.out.println(""+arch.getFilePointer());
            }
            arch.close();
        } catch (Exception e) {
            System.out.println("Fin de archivo " + e.getMessage());
        }

    }

    public void mostrarAbajoArriba() {
        System.out.println("\nDe abajo a arriba");
        double a = 0;
        try {
            long atras = (arch.length()/8)-1;//calcula el total de datos en el archivo
            System.out.println("Total de datos Doubles:"+(arch.length()/8));
            arch.seek(atras * 8);//se posiciona en el ultimo dato del archivo
            while (arch != null) {//mientras no sea null
                a = arch.readDouble();//se lee el dato del archivo
                if(atras <= 0){//si es el primer dato 
                    arch.seek(0);//lo posicionamos al inicio del archivo
                    a = arch.readDouble();//leemos el dato
                    System.out.println(a);//imprimimos el dato
                    break;//interrumpimos
                }
                System.out.println(a);//imprimimos el dato
                atras --;//Se decrementa en uno 
                arch.seek(atras * 8);//se posiciona en la posicion anterior
            }

        } catch (Exception e) {
            System.out.println("Error mostrar" + e.getMessage());
        } finally{

         try{                    
            if( arch != null ){   
               arch.close();     
            }                  
         }catch (Exception e2){ 
            e2.printStackTrace();
         }
      }

    }

    public static void main(String[] args) throws IOException {
        Scanner teclado = new Scanner(System.in);
        ArchivoBinario archbin = new ArchivoBinario();
        System.out.println("Cuantos quiere agregar?");
        int cuantos = teclado.nextInt();
        archbin.agregarDatos(cuantos);
        archbin.mostrarArribaAbajo();
        archbin.mostrarAbajoArriba();
    }

}

Link de descarga del proyecto
Link de descarga del proyecto

http://raboninco.com/GCEe

Archivos de texto en Java lectura y escritura
https://ivanovich-hacker.blogspot.com/2019/03/archivos-de-textos-en-java-lectura-y.html

Comentarios

  1. Oye puedes ayudarme hacer un proyecto de consola usando archivos binarios de datos en C#.

    ResponderBorrar

Publicar un comentario