Foros del Web » Programación para mayores de 30 ;) » Java »

problemas con archivos

Estas en el tema de problemas con archivos en el foro de Java en Foros del Web. hola amigos tengo un problema con lo siguiente: Estoy haciendo una aplicacion utilizando swing y cuando quiero llenar en un JTextArea texto de un archivo ...
  #1 (permalink)  
Antiguo 12/11/2006, 22:20
 
Fecha de Ingreso: noviembre-2006
Mensajes: 27
Antigüedad: 17 años, 5 meses
Puntos: 0
problemas con archivos

hola amigos tengo un problema con lo siguiente:
Estoy haciendo una aplicacion utilizando swing y cuando quiero llenar en un JTextArea texto de un archivo utilizando un BufferedReader la primera vez que hago click en aceptar esta ok pero cuando vuelvo aplastar el boton aceptar nuevamente me sale un excepcion estaba pensando que tal vez solo se `pueda leer una vez la verdad no se que pasa amigos ojala me puedan ayudar de antemano gracias
  #2 (permalink)  
Antiguo 13/11/2006, 12:34
 
Fecha de Ingreso: marzo-2006
Mensajes: 54
Antigüedad: 18 años, 1 mes
Puntos: 0
colega:
porque no pones un poco de codigo o por lo menos muestranos cual es el stacktrace de la excepcion
  #3 (permalink)  
Antiguo 13/11/2006, 20:27
 
Fecha de Ingreso: noviembre-2006
Mensajes: 27
Antigüedad: 17 años, 5 meses
Puntos: 0
tienes razon debi poner parte del codigo sorry

metodo que me abre el archivo
public static BufferedReader abrir(){
File f=new File("cuentas2.txt");
BufferedReader br=null;
try{
br=new BufferedReader(new FileReader(f));

}catch(IOException e){

}
return br;
}
metodo que lo usa(t1 y t2 son JTextField y ar2 es un arraylist)
private void debe(ActionEvent e){
BufferedReader br=abrir();
try{
String c=t1.getText();
String c1=t2.getText();
ar2.add(c);
//tamaño del texto que ingreso por t1
int x=c.length();
while(br.readLine()!=null){
String in=br.readLine();
String r=in.substring(0,x);
if(r.equals(c)){
String r1=in.substring(x,in.length());
ar.add(r1+" "+c1);
break;
}
}
br.close();
t1.setText("");
t2.setText("");
}catch(IOException e1){
}
}

este metodo muestra lo q guarde en el ArrayList y lo muestra en JTextArea claro habia otro ArrayList que es ar1 y ar

private void registrar(ActionEvent e){
String t=javax.swing.JOptionPane.showInputDialog("ingrese el codigo:");
cont++;
a.append("..................."+cont+"............. ."+"\n");
int i=ar.size();
for(int j=0;j<i;j++){
a.append((String)ar2.get(j)+" ");
a.append((String)ar.get(j)+"\n");
}
int i1=ar2.size();
for(int j=i;j<i1;j++){
a.append((String)ar2.get(j)+" ");
a.append((String)ar1.get(j-1)+"\n");
}

a.append(t+"\n");
ar.clear();
ar1.clear();
ar2.clear();
t1.setText("");
t2.setText("");
}

la primera vez que hago click me salle lo que quiero osea esto

...................1..............
10 caja y banco 2514
40 tributos por pagar 654
por la compra de mercaderia

pero cuando quiero volver hacer click en el boton me sale esta excepcion

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at contabilidad.Transaccion.debe(Transaccion.java:178 )
at contabilidad.Transaccion.access$2(Transaccion.java :169)
at contabilidad.Transaccion$3.actionPerformed(Transac cion.java:155)
at javax.swing.AbstractButton.fireActionPerformed(Unk nown Source)
at javax.swing.AbstractButton$Handler.actionPerformed (Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed (Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent( Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(U nknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unkno wn Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierar chy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
  #4 (permalink)  
Antiguo 14/11/2006, 01:46
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Seguramente en el metodo abrir() te salte una excepcion y entonces el metodo devuelve null y por eso al intentar usar el objeto que devuelve te da una NullPointerException. Pero el error original no lo ves por que estas haciendo "catch ciegos", es decir, catch que capturan pero no hacen nada con la excepción, ni notifican ni nada.
Lo cual no es una buena idea, como queda demostrado en este caso .
  #5 (permalink)  
Antiguo 14/11/2006, 10:02
 
Fecha de Ingreso: noviembre-2006
Mensajes: 27
Antigüedad: 17 años, 5 meses
Puntos: 0
gracias por responder

Si tienes mucha razon en lo de los catch ciegos no es bueno dejarlos vacios pero tu cres qeu hay un error en el metodo abrir() que me devuelve null pero porque pasaria eso, acaso solo una vez se puede abrir un archivo o es que el evento en el boton esta mal cual es el problema amigo ayudenme
  #6 (permalink)  
Antiguo 14/11/2006, 14:14
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Hola:

Escribe en el catch() de abrir la excepción y mira a ver qué sale.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #7 (permalink)  
Antiguo 15/11/2006, 01:27
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Cita:
Iniciado por alanp Ver Mensaje
...pero tu cres qeu hay un error en el metodo abrir() que me devuelve null pero porque pasaria eso...
Si el fichero no existe, si ya has abierto un Stream hacia el, por algun error de entrada/salida (fichero protegido contra escritura)....

Las excepciones de tipo "checked" están así por algo y hay que tratarlas. Ignorarlas con catch "ciegos" sólo sirve para no saber lo que ha ocurrido... y tarde o temprano la Ley de Murphy dice que algo ocurre .
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:09.