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

Error.Donde está?

Estas en el tema de Error.Donde está? en el foro de Java en Foros del Web. A ver si encontrais el error.El código está bien,pero como veis hay varios System.out.println para ver si me cogía bien los datos.Me podeis decir porque ...
  #1 (permalink)  
Antiguo 21/01/2008, 07:00
 
Fecha de Ingreso: enero-2008
Mensajes: 48
Antigüedad: 16 años, 3 meses
Puntos: 3
Error.Donde está?

A ver si encontrais el error.El código está bien,pero como veis hay varios System.out.println para ver si me cogía bien los datos.Me podeis decir porque
al terminar el método leerFichero me muestra bien el número de centros(modelo.getListaCentros().size()) pero en el método escribirFichero() sin embargo en el system k le hago me muestra un 0.Como puede ser si llamo a los dos uno detrás de otro(el 1º para importar y el 2º para guardar) y están en la misma clase?



public class EntradaSalida
{
ModeloPizarra modelo=new ModeloPizarra();

//PATRON FACHADA.CASO DE USO

@SuppressWarnings("empty-statement")
public static ModeloPizarra leerCoordenadas(File f)throws FileNotFoundException{
ModeloPizarra modelo = new ModeloPizarra();
try{
String linea;
FileReader libro = new FileReader(f);
BufferedReader lector = new BufferedReader (libro );
lector.readLine();//nos saltamos la primera linea en la que pone Centros
ArrayList<Poligono> listaPoligonos=new ArrayList<Poligono>();
//ArrayList<Poligono> listaPoligonos=modelo.getListaPoligonos();
linea=lector.readLine();
while(linea!=null && !linea.startsWith("Poligono") )
{
StringTokenizer st=new StringTokenizer(linea);
Punto p=new Punto(Integer.parseInt(st.nextToken()),Integer.par seInt(st.nextToken()), Aplicacion.getAplicacion().getPizarra().getColorNo rmal());
modelo.añadirCentro(p);
Poligono poli=new Poligono(p);
listaPoligonos.add(poli);
linea=lector.readLine();
}


int contador=-1;

while(linea!=null)
{
while(linea!=null && !linea.startsWith("Poligono"))
{
StringTokenizer st=new StringTokenizer(linea);

Punto p=new Punto(Integer.parseInt(st.nextToken()),Integer.par seInt(st.nextToken()),Aplicacion.getAplicacion().g etPizarra().getColorSelec());
Poligono poli;
if(contador>=listaPoligonos.size())
{
poli=new Poligono(null);
listaPoligonos.add(poli);
}
listaPoligonos.get(contador).addPunto(p);
modelo.getPuntos().add(p);
linea=lector.readLine();
}
contador++;
if(linea == null) break;
linea=lector.readLine();
}

libro.close();
modelo.setListaPoligonos(listaPoligonos);
System.out.println("el numero de centros es :"+modelo.getListaCentros().size());
System.out.println("el numero de poligonos es :"+modelo.getListaPoligonos().size());
System.out.println("el numero de puntos es :"+modelo.getPuntos().size());
System.out.println("el numero de puntos con metodos es :"+modelo.getNumPuntos());

}
catch(Exception e)
{
e.printStackTrace();
}
return modelo;
}


public void escribirFichero(File file)
{
ModeloPizarra modelo=new ModeloPizarra();
String cad,cad2;
int i=1;
int j;
try
{
System.out.println("Empezamos");
FileWriter fw= new FileWriter(file);
System.out.println("/********NUMERO DE CENTROS***********/" );

System.out.println("Centros"+" "+modelo.getListaCentros().size());

fw.write("Centros");

for(Punto centro : modelo.getListaCentros())
{
System.out.println("DEnto del for");
System.out.println(modelo.getListaCentros().size() );
cad=centro.getX()+" "+centro.getY();
fw.write(cad);
}
for(Poligono poli : modelo.getListaPoligonos())
{

fw.write("Poligono"+ i);
for(Punto p : modelo.getPuntos())
{
cad2=p.getX()+" "+p.getY();
fw.write(cad2);
}
i++;
}

fw.flush();
fw.close();
}
catch (IOException e)
{System.out.println("Error de escritura");}
}
  #2 (permalink)  
Antiguo 01/02/2008, 10:34
Avatar de GhostGirl  
Fecha de Ingreso: enero-2008
Mensajes: 11
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Error.Donde está?

Hola!!!

Te muestra 0 dentro del método porque vuelves a crear el objeto en la primera linea del método:

ModeloPizarra modelo=new ModeloPizarra();

eso hace que el objeto se setee por decirlo de alguna forma ... y luego estás accediendo al objeto local al método o sea el que acabas de crear ...

Esperando haber sido de ayuda me despido

Que estes bien
Saludos
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 09:39.