problema con este programa

4 views
Skip to first unread message

huntermemo

unread,
Nov 30, 2008, 7:28:34 PM11/30/08
to GulTec
hola
les dejo este mensaje aunque no tiene nada que ver con debian..pero es
algo que no encuentro solucion es de programacion y vean:

import java.io.*;
public class leerAgenda
{
String m;
int n;
int b;
String v;
int c;
float x;
float z;
void lectura()
{
int b=0;
RandomAccessFile reg=null;
leerAgenda p=new leerAgenda();
try
{
reg=new RandomAccessFile("Agencia.bin",null);
}
catch(IOException e)
{
System.out.println("Error al abrir");
}
do
{
try
{
p.m=reg.readUTF();
p.n=reg.readInt();
p.b=reg.readInt();
p.v=reg.readUTF();
p.c=reg.readInt();
p.x=reg.readFloat();
p.z=reg.readFloat();
System.out.println("Auto"+p.m);
System.out.println("puertas"+p.n);
System.out.println("cilindros"+p.b);
System.out.println("modelo"+p.v);
System.out.println("tamaño"+p.c);
System.out.println("precio"+p.x);
System.out.println("impuesto"+p.z);
b=0;
}
catch(EOFException e1)
{
System.out.println("fin de archivo");
b=1;
}
catch(IOException e2)
{
System.out.println("error de lectura");
b=1;
}
}while(b!=0);
}
public static void main(String a[])
{
leerAgenda dd=new leerAgenda();
dd.lectura();
}
}
y me sale al compilar no me sale nada,
pero al momento de ejecutarlo dice
Exception in thread "main" java.lang.NullPointerException
at java.io.RandomAccessFile.<init><RandomAccessFile.java:182>
at java.io.RandomAccessFile.<init><RandomAccessFile.java:98>
at leerAgenda.lectura>leerAgenda.java:18>
At leerAgenda.main>leerAgenda.java:59>
presiona cualquier tecla para salir
si pueden ayudarme gracias

jmnovelov

unread,
Dec 1, 2008, 11:18:59 PM12/1/08
to GulTec
n ? b ? c ? x ? m ? =S por cierto y el archivo que quieres leer ? lo
tendrás por ahí

jmnovelov

unread,
Dec 2, 2008, 12:09:28 AM12/2/08
to GulTec
por cierto le volví a hechar un ojo a tu código pero ya entendí.

Tu estás haciendo un request por un NullPointerException (odio esa
maldita excepcion) mira el problema es tu constructor:

reg=new RandomAccessFile("Agencia.bin",null);

el segundo atributo según la documentación (vease:
http://java.sun.com/j2se/1.4.2/docs/api/java/io/RandomAccessFile.html#mode
) requiere un String que indica el modo en el que abres el archivo:

"r" si quieres leer
"rw" si quieres leer y escribir

y los otros modos no los entendí.

Ahora bueno, una pequeña explicación: Los archivos de acceso Aleatoreo
(RandomFiles) son archivos que se supone están hechos para obtener un
registros a partir de una llave de una mánera rápida (sin tener que
leer los registros previos para encontrar dicho registro)
Si tu lo que quieres es leer un sólo registro te recomendaría
ampliamente uses el ObjectOutputStream para escribir o el
ObjectInputStream para leer.

Otra recomendación:
Leete las convenciones de codificacion:
http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

y sobre todo esta sección que habla de las convenciones para poner
nombres:
http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html#367

La ventaja de seguir esas convenciones es que vas a tener un código
más legible y elegante, por lo que sería más fácil darle mantenimiento
a tu código y también a la hora que pidas ayuda a otros programadores,
sería más fácil que la persona que te ayude entienda tu código fuente.

Si sientes que los nombres quedan muy largos, también te recomiendo
uses una IDE (como NetBeans o Eclipse) :P

On 30 nov, 18:28, huntermemo <memogn...@gmail.com> wrote:

Julian Ceballos

unread,
Dec 2, 2008, 11:43:04 AM12/2/08
to gul...@googlegroups.com
Efectivamente compañeros, faltaban los parametros de escritura, lectura
o lectura escritura.

He puesto en modo rw y como no tengo el archivo siempre va a mostrar
"fin de archivo".

Lee la documentación de Java, ahi te dice absolutamente todo lo que
necesites saber respecto a una clase especifica.

No le hagas caso a todo lo que te diga panchito o cualquier maestro, lee
la documentación del lenguaje de programación.

jmnovelov escribió:

Julian Ceballos

unread,
Dec 2, 2008, 11:44:43 AM12/2/08
to gul...@googlegroups.com
Ah!, por si las moscas te pego la linea a cambiar:

reg=new RandomAccessFile("Agencia.bin","rw");

jmnovelov escribió:

jmnovelov

unread,
Dec 2, 2008, 1:25:22 PM12/2/08
to GulTec
Que tienes contra panchito y su leeInt() (que ademas escribió caceres
xD) jajajajajajajaja ntc :P panchito no enseña Java, enseña como
programar en C con Java jjajajajajajajaj o algo así, mezclado con una
mezcla de antipatrones

On 2 dic, 10:43, Julian Ceballos <cristianjuliancebal...@gmail.com>
wrote:
> Efectivamente compañeros, faltaban los parametros de escritura, lectura
> o lectura escritura.
>
> He puesto en modo rw y como no tengo el archivo siempre va a mostrar
> "fin de archivo".
>
> Lee la documentación de Java, ahi te dice absolutamente todo lo que
> necesites saber respecto a una clase especifica.
>
> No le hagas caso a todo lo que te diga panchito o cualquier maestro, lee
> la documentación del lenguaje de programación.
>
> jmnovelov escribió:
>
> > por cierto le volví a hechar un ojo a tu código pero ya entendí.
>
> > Tu estás haciendo un request por un NullPointerException (odio esa
> > maldita excepcion) mira el problema es tu constructor:
>
> > reg=new RandomAccessFile("Agencia.bin",null);
>
> > el segundo atributo según la documentación (vease:
> >http://java.sun.com/j2se/1.4.2/docs/api/java/io/RandomAccessFile.html...
Reply all
Reply to author
Forward
0 new messages