Buongiorno....
Devo memorizzare una coppia chiave,valore in un file txt,dove mi è stato chiesto di usare i metodi della classe Properties,qualcuno puo' darmi una mano?
Grazie
Buongiorno....
Devo memorizzare una coppia chiave,valore in un file txt,dove mi è stato chiesto di usare i metodi della classe Properties,qualcuno puo' darmi una mano?
Grazie
Beh ma quale è il dubbio, precisamente??? Properties ha i metodi setProperty() e getProperty() più altri di Hashtable da cui deriva. Puoi caricare i dati (metodi load() ) e puoi salvare i dati (metodi store() ). E da Java 5 ci sono i metodi per caricare/salvare in un formato XML specifico.Originariamente inviato da mery messina
Devo memorizzare una coppia chiave,valore in un file txt,dove mi è stato chiesto di usare i metodi della classe Properties,qualcuno puo' darmi una mano?
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Quindi un metodo del genere andrebbe bene...
***********************************
public String mappa(int node, String dizionario){
String nome="";
Properties prop=null;
try {
FileInputStream in = new FileInputStream (dizionario);
prop = new Properties();
prop.load(in);
in.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.exit(-1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.exit(-1);
}
String valore = prop.getProperty( ""+node );
return ( valore!=null )? valore: ""+node ;
}
Non è una buona gestione delle eccezioni (catturare le eccezioni e oltretutto fare un System.exit(-1) a quel livello non mi sembra la cosa più furba .... e tra l'altro se catturi IOException l'altro catch di FileNotFoundException è superfluo se fai la stessa cosa, perché FileNotFoundException estende IOException, quindi basterebbe quest'ultimo!).Originariamente inviato da mery messina
Quindi un metodo del genere andrebbe bene...
Comunque concettualmente sì, è quello da fare, intendo l'uso di Properties e il caricamento.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Mi potresti fare un esempio con metodi della classe Properties salvando una coppia chiave valore e poter poi leggere questa coppia chiave valore se è presente,ovviamente in un secondo momento!!
Mi basta un esempio per farmi capire,anche senza far riferimento al problema specifico che ho fatto prima!
grazie
Non so quante volte dovrò ripetertelo ancora: quando si posta del codice si devono usare gli appositi tag CODE, come previsto dal regolamento (punto 6), che ti riporto qui testualmente.
Ad ogni modo, il recupero di una property precedentemente salvata l'hai già fatto tu.Formattazione del codice sorgente.
Quando incollate una porzione di codice all'interno di un messaggio, utilizzate l'apposito tag
[CODE]
codice
[/CODE]
che può essere inserito automaticamente premendo il pulsante CODE: questo renderà il codice leggibile e facilmente comprensibile a tutti, agevolando gli utenti che desiderano aiutarvi.
Per il salvataggio, è sufficiente aggiungere qualche chiamata:
Ciao.codice:Property prop = new Property(); ... // Aggiungo una property // <valore> è in corsivo proprio perchè può essere una qualunque stringa di testo prop.setProperty("tuaProperty", "<valore>"); ... // Salvo tutto su file prop.store(new FileOutputStream("nome_del_file"), "");![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Guarda mi so scritta in una classe a parte su eclipse questo metodo...
Properties prop=new Properties();
prop.setProperty(nomefile, valore);
// Salvo tutto su file
prop.store(new FileWriter("C:/Users/mariangela/Desktop/universita/eclipse7info_hash/pluto.txt",true);
perche' mi da errore il pezzo inerente a salva tutto su file!!!Cioe io tengo
nomefile=paperino e chiave=gdebcjmdksbvck9522df
con setProperty io lo carico in prop?
Poi se tutto questo lo salvo su un file mi dovrebbe stampare la coppia chiave valore?
O ho capito male?
Se fai l'append .... aggiunge. Ma così rischi di avere cose duplicate!!! Mica è molto logico.Originariamente inviato da mery messina
prop.store(new FileWriter("C:/Users/mariangela/Desktop/universita/eclipse7info_hash/pluto.txt",true);
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
non e' il problema di sovrascriver è ch eil file non lo crea proprio
3 questioni:Originariamente inviato da mery messina
non e' il problema di sovrascriver è ch eil file non lo crea proprio
- Lo store() che riceve un Writer c'è solo da Java 6. Meglio se usi l'altro che riceve un OutputStream.
- la sintassi che hai scritto non mi quadra:
prop.store(new FileWriter("C:/Users/mariangela/Desktop/universita/eclipse7info_hash/pluto.txt",true);
store() ha un secondo parametro, un String comment ... dov'è??
- Se leggevi il javadoc per load() e store(), rispettivamente:
The specified stream remains open after this method returns.
per store() in effetti dice che dello stream viene fatto il flush() ma è meglio se lo chiudi tu e questo vuol dire che non puoi istanziare e passare lo stream direttamente a store()!!
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet