elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Problema modificación archivo binario java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema modificación archivo binario java  (Leído 2,084 veces)
solid120

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Problema modificación archivo binario java
« en: 3 Junio 2013, 11:28 am »

Hola, buenas noches, o buenos días  :P

Espero y me puedan ayudar, estoy trabajando con archivos binarios, y en la modificación estoy que no puedo avanzar, en teoría yo diría que debería estar bien.
lo que hago es lo siguiente:
- creo otro archivo, pido la matricula que voy a modificar, entonces copio todo del archivo "original" al nuevo excepto el que quiero modificar, entonces pido los nuevo datos, los agrego, borro el original, cambio nombre del segundo archivo.

El error debe de estar en mi código (supongo), ya he pedido ayuda a compañeros pero nadie me dice nada mas de un "debería de funcionar así" y pues la verdad es que ya no encuentro que hacer, espero que me puedan ayudar, gracias.

Mi código de modificación es el siguiente:
Código:
public void modificarRegistro(BufferedReader entrada) throws IOException{
        archivo=new File("temp");
        grabar=new DataOutputStream(new FileOutputStream("texto.txt",true));
        leer=new DataInputStream(new FileInputStream("texto.txt"));
        grabar2 =new DataOutputStream(new FileOutputStream("temp",true));
        int matriculab;
        System.out.println("Matricula a buscar");
        matriculab=3;
        String nombre;
        try{
            while((nombre=leer.readUTF())!=null){
               
                int mat=leer.readInt();
                float c1=leer.readFloat();
                float c2=leer.readFloat();
                float prom=leer.readFloat();
                if(matriculab==mat){
                                   
                }
                else{
                   
                   obj.setNombre(entrada.readLine());                   
                   
                   obj.setMatricula(Integer.parseInt(entrada.readLine()));
                   
                   obj.setCalificacion1(Float.parseFloat(entrada.readLine()));
                   
                   obj.setCalificacion2(Float.parseFloat(entrada.readLine()));
                 
                   obj.setPromedio((obj.getCalificacion1()+obj.getCalificacion2())/2);
                   
                   grabar2.writeUTF(obj.getNombre());
                   grabar2.writeInt(obj.getMatricula());
                   grabar2.writeFloat(obj.getCalificacion1());
                   grabar2.writeFloat(obj.getCalificacion2());
                   grabar2.writeFloat(obj.getPromedio());
                }
               
               
               
            }
                System.out.println("Nuevo nombre del Alumno: ");
                obj.setNombre(entrada.readLine());
                System.out.println("Nueva Matricula: ");
                obj.setMatricula(Integer.parseInt(entrada.readLine()));
                System.out.println("Nueva Calificación 1: ");
                obj.setCalificacion1(Float.parseFloat(entrada.readLine()));
                System.out.println("Nueva Calificación 2: ");
                obj.setCalificacion2(Float.parseFloat(entrada.readLine()));
                obj.setPromedio((obj.getCalificacion1()*obj.getCalificacion2())/2);
                //escritura en archivo
                grabar2.writeUTF(obj.getNombre());
                grabar2.writeInt(obj.getMatricula());
                grabar2.writeFloat(obj.getCalificacion1());
                grabar2.writeFloat(obj.getCalificacion2());
                grabar2.writeFloat(obj.getPromedio());
               
                grabar2.close();
                archivo.delete();
                archivo2.renameTo(archivo);
               
                leer.close();
                leer2.close();
                grabar.close();
                grabar2.close();
        }catch(IOException err){
            System.out.println("Error");
        }
    }

Utilizando el ciclo while(true) me marca error en el NetBeans que solo logre resolver utilizando el ciclo "while((nombre=leer.readUTF())!=null)"


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como mandar a llamar un archivo java externo dentro un un archivo java
Java
hacker2000 8 10,790 Último mensaje 20 Diciembre 2005, 20:35 pm
por Casidiablo
Problema al leer archivo en Java
Java
thekill01 1 1,883 Último mensaje 27 Mayo 2012, 03:02 am
por [Case]
Problema al leer un archivo binario en C
Programación C/C++
the_jocker 5 3,986 Último mensaje 13 Agosto 2012, 01:37 am
por CSQCasimiro
[AYUDA] Obtener la fecha de modificacion de un archivo
Programación C/C++
maxgeniusgm 1 4,606 Último mensaje 31 Octubre 2012, 00:59 am
por BatchianoISpyxolo
Duda programa JAVA al leer archivo binario
Java
LoLo2207 3 2,144 Último mensaje 15 Diciembre 2012, 20:23 pm
por LoLo2207
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines