vale, perdon por la tonteria, el problema era la raiz del disco c, ahora si me deja...., solo me queda el metodo que ordena y el de leer
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menúpublic boolean guardar(String escritura) {
try{
File fichero = new File (escritura);
FileWriter escribir = new FileWriter (fichero);
for(Map.Entry<String,SortedSet<IPoblacion>> entry: Aprovincias.entrySet()){
escribir.write(entry.getKey() + " " + entry.getValue());
}
escribir.close();
return true;
}catch(Exception e){
e.printStackTrace();
}
return false;
}
@Override
public boolean ordenarPor(String provincia, int ordenarPor) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean recuperar(String arg0) {
// TODO Auto-generated method stub
return false;
}
java.io.FileNotFoundException: c:\prueba.txt (Acceso denegado)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileWriter.<init>(Unknown Source)
at AlmacenPoblaciones.guardar(AlmacenPoblaciones.java:276)
at test.main(test.java:26)
public class AlmacenPoblaciones implements IAlmacenPoblaciones {
Map<String, SortedSet<IPoblacion>> Aprovincias = new HashMap<String, SortedSet<IPoblacion>>();
private SortedSet<IPoblacion> getPoblacion(String provincia) {
SortedSet<IPoblacion> poblacion = null;
for(Map.Entry<String, SortedSet<IPoblacion>> entry : Aprovincias.entrySet()) {
if(entry.getKey().equals(provincia))
poblacion = entry.getValue();
}
return poblacion;
}
@Override
public boolean addPoblacion(String provincia, IPoblacion poblacion) {
boolean res = false;
if(!Aprovincias.containsKey(provincia)){
res = false;
System.out.println("La Provincia no existe, creela antes de añadir poblacion");
}else{
SortedSet<IPoblacion> sPoblacion = getPoblacion(provincia);
sPoblacion.add(poblacion); Aqui es donde me da error y no se por que
Aprovincias.put(provincia, sPoblacion); Aqui es donde me da error y no se por que
res = true;
}
return res;
}
@Override
public boolean addProvincia(String provincia) {
SortedSet<IPoblacion> poblaciones = null;
boolean res = false;
if(Aprovincias.containsKey(provincia)){
System.out.println("Ya existe la provincia");
}else{
Aprovincias.put(provincia, poblaciones);
res = true;
}
return res;
}
@Override
public boolean containsPoblacion(String provincia, String poblacion) {
boolean res = false;
if(!!Aprovincias.containsValue(provincia)){
res = false;
System.out.println("La Provincia no existe, creela antes de eliminar poblacion");
}else{
SortedSet<IPoblacion> sPoblacion = (SortedSet<IPoblacion>) getPoblacion(provincia);
if(sPoblacion.contains(poblacion)){
res = true;
}
}
return res;
}
@Override
public boolean containsPoblacion(String arg0, IPoblacion arg1) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean containsProvincia(String provincia) {
boolean res = false;
if(Aprovincias.containsKey(provincia)){
res = true;
System.out.println("La provincia esta en el almacen");
}else{
System.out.println("La provincia no esta en el almacen");
}
return res;
}
public class test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stu
Poblacion poblacion = new Poblacion("Getafe",0,"Madrid");
Poblacion poblacion2 = new Poblacion("Leganes", 345,"Madrid");
AlmacenPoblaciones provincias = new AlmacenPoblaciones();
provincias.addProvincia("Madrid");
provincias.addPoblacion("Madrid", poblacion);
provincias.addPoblacion("Madrid", poblacion2);
}
}
Cita de: Gus Garsaky en 2 Marzo 2015, 11:40 AM
vale, creo que ya lo he entendido, he codificado el metodo asi:public boolean addPoblacion(String provincia, IPoblacion poblacion) {
boolean res = false;
if(!!Aprovincias.containsValue(provincia)){
res = false;
System.out.println("La Provincia no existe, creela antes de añadir poblacion");
}else{
SortedSet<IPoblacion> sPoblacion = (SortedSet<IPoblacion>) getPoblacion(provincia);
sPoblacion.add(poblacion);
Aprovincias.put(provincia, sPoblacion);
res = true;
}
return res;
}
pero al hacer un test del programa con este codigo:public class test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Map<String, Set<IPoblacion>> Aprovincias = new HashMap<String, Set<IPoblacion>>();
Poblacion poblacion = new Poblacion("Getafe",0,"Madrid");
Poblacion poblacion2 = new Poblacion("Leganes", 345,"Madrid");
AlmacenPoblaciones provincias = new AlmacenPoblaciones();
provincias.addProvincia("Madrid");
provincias.addPoblacion("Madrid", poblacion);
//provincias.addPoblacion("Madrid", poblacion2);
}
}
me da nullpointer exception en la linea en la que añado la poblacion al Set, el metodo que utilizo para sacar el set lo he codificado asi:private Set<IPoblacion> getPoblacion(String provincia) {
Set<IPoblacion> poblacion = null;
for(Map.Entry<String, Set<IPoblacion>> entry : Aprovincias.entrySet()) {
if(entry.getKey().equals(provincia))
poblacion = entry.getValue();
}
return poblacion;
}
Creo que el error lo tengo en el tipo de objeto que meto en el Set, pero me hago un lio por que el set tiene objetos de tipo Ipoblacion que es una interfaz que tengo que implementar y lo que yo creo son poblaciones de la clase poblacion que es la clase que queda al implementarse Ipoblacion
[\quote]
Map<String, Set<Poblacion>> Aprovincias = new HashMap<String, Set<Poblacion>>();
public boolean addPoblacion(String provincia, IPoblacion poblacion) {
boolean res = false;
if(!!Aprovincias.containsValue(provincia)){
res = false;
System.out.println("La Provincia no existe, creela antes de añadir poblacion");
}else{
//Aprovincias.put(provincia, );
Aqui es donde tengo el problema, ya que no se que hacer
}
return res;
}
new Muro(new Vector(0, .5),new Vector(.005, .5))
Cita de: egyware en 11 Marzo 2014, 15:41 PMlo probe y perfecto amigo, muchas gracias, que rapidez a si es genial
Mi respuesta a tu pregunta ya está respondida.
Fíjate bien el el "this", yo lo que hice fue hacer un constructor más cómodo. Sin embargo perfectamente podías hacer esto.
new Muro(new Vector(0, .5), new Vector(.005, .5));