Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Polestar 3 Performance, test drive: comodità e potenza possono convivere
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Abbiamo passato diversi giorni alla guida di Polestar 3, usata in tutti i contesti. Come auto di tutti i giorni è comodissima, ma se si libera tutta la potenza è stupefacente
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
In occasione del proprio Architecture Deep Dive 2025 Qualcomm ha mostrato in dettaglio l'architettura della propria prossima generazione di SoC destinati ai notebook Windows for ARM di prossima generazione. Snapdragon X2 Elite si candida, con sistemi in commercio nella prima metà del 2026, a portare nuove soluzioni nel mondo dei notebook sottili con grande autonomia
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-07-2007, 23:38   #1
Gremo
Senior Member
 
L'Avatar di Gremo
 
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
[JAVA] File di configurazione di una applicazione

Salve,
esiste qualcosa del genere simile alle applicazione .NET:

un file (tipicamente xml) con coppie variabli-valore, che è possibile leggere attraverso un oggetto "ConfigurationSettings".

Ho la necessità di memorizzare dati per connetere ad un db, ma non voglio "hardcodarli" deentro un oggetto, anche perchè se poi cambiano devo ricompilare.

help?
__________________

Desktop: Intel i7-4770K | Asus Gryphon Z87 | Crucial 16GB DDR3 1600MHz | Gigabyte GTX 780 OC Windforce x3 | Samsung 840 Pro 128GB (x 2 RAID0) | be quiet! Straight Power E9 680W CM
Mercatino: bottoni, Dede371, pippokennedy, Bulbi_67, randose, DarkSiDE, davidepaco, _Legend_
Gremo è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2007, 01:39   #2
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7260
incredibile! ogni volta questa classe mi torna di aiuto:
Codice:
import java.io.IOException;

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
import org.xml.sax.SAXException;

/**
 * This class provide a generic method to handle a configuration file using XML
 */
public class Configuration {
	private String filename = null;
	
	/**
	 * This is the constructor
	 * @param filename The configuration file
	 */
	public Configuration(String filename) {
		super();
		this.filename = filename;
	}
	
	/**
	 * Get a specified value from the configuration file
	 * @param name The name of the property
	 * @return The value of the property
	 * @throws SAXException
	 * @throws IOException
	 * @throws ParserConfigurationException
	 */
	public String getValue(String name) throws SAXException, IOException, ParserConfigurationException {
		Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(this.filename);
		Element root = doc.getDocumentElement();
		NodeList children = root.getChildNodes();
	    for(int i = 0; i < children.getLength(); i++) {
	    	Node item = children.item(i);
	    	if(item instanceof Element && item.getNodeName().equalsIgnoreCase(name)) {
	    		NodeList children1 = item.getChildNodes();
	    		for (int j = 0; j < children1.getLength(); j++) {
		    		Node item1 = children1.item(j);
					if(item1 instanceof Text && !item1.getNodeValue().trim().equals("")) {
						return item1.getNodeValue().trim();
					}
				}
	  	    }
	    }
		return null;
	}
	
	/**
	 * Set a value in the configuration file
	 * @param name The name of the property
	 * @param value The value of the property
	 * @throws SAXException
	 * @throws IOException
	 * @throws ParserConfigurationException
	 * @throws TransformerException
	 */
	public void setValue(String name, String value) throws SAXException, IOException, ParserConfigurationException, TransformerException {
		Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(this.filename);
		Element root = doc.getDocumentElement();
		NodeList children = root.getChildNodes();
	    for(int i = 0; i < children.getLength(); i++) {
	    	Node item = children.item(i);
	    	if(item instanceof Element && item.getNodeName().equalsIgnoreCase(name)) {
	    		NodeList children1 = item.getChildNodes();
	    		for (int j = 0; j < children1.getLength(); j++) {
		    		Node item1 = children1.item(j);
					if(item1 instanceof Text && !item1.getNodeValue().trim().equals("")) {
						item1.setNodeValue(value);
					}
				}
	  	    }
	    }
	    doc.normalize();
	    
	    DOMSource dom=new DOMSource(doc);
	    TransformerFactory tFactory =TransformerFactory.newInstance();
	    Transformer transformer = null;
		transformer = tFactory.newTransformer();
	    StreamResult result = new StreamResult(filename);
	    transformer.transform(dom, result);
	}
}
semplice, essenziale.. spero che è quello che cerchi
ciao
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2007, 01:44   #3
Jo3
Senior Member
 
L'Avatar di Jo3
 
Iscritto dal: Jun 2001
Messaggi: 1299
Quote:
Originariamente inviato da Gremo Guarda i messaggi
Salve,
esiste qualcosa del genere simile alle applicazione .NET:

un file (tipicamente xml) con coppie variabli-valore, che è possibile leggere attraverso un oggetto "ConfigurationSettings".

Ho la necessità di memorizzare dati per connetere ad un db, ma non voglio "hardcodarli" deentro un oggetto, anche perchè se poi cambiano devo ricompilare.

help?
Puoi utilizzare la classe java.util.Properties, che ti consente di specificare un semplice file di testo cosi composto :

chiave1 = valore1
chiave2 = valore2

il file dovra chiamarsi miofile.properties, e verra' caricato nel seguente modo :


FileInputStream fis =
new FileInputStream( "C:/miofile.properties" );
Properties properties = new Properties();
properties.load(fis);


Ogni volta che avrai bisogno di un valore, bastera chiamare il metodo getProperty


String valore1 = props.getProperty( "chiave1" );
__________________

Referenti in Compravendite Ognuno sceglie le cause per cui combattere in base alla propria statura.
Jo3 è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2007, 01:51   #4
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7260
Quote:
Originariamente inviato da Jo3 Guarda i messaggi
Puoi utilizzare la classe java.util.Properties, che ti consente di specificare un semplice file di testo cosi composto :

chiave1 = valore1
chiave2 = valore2

il file dovra chiamarsi miofile.properties, e verra' caricato nel seguente modo :


FileInputStream fis =
new FileInputStream( "C:/miofile.properties" );
Properties properties = new Properties();
properties.load(fis);


Ogni volta che avrai bisogno di un valore, bastera chiamare il metodo getProperty


String valore1 = props.getProperty( "chiave1" );
non ci avevo mai pensato
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2007, 04:00   #5
Gremo
Senior Member
 
L'Avatar di Gremo
 
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
entrambi gentilissimi e veloci grazie
preferisco la versione "nativa" di Jo3, provo subito!
__________________

Desktop: Intel i7-4770K | Asus Gryphon Z87 | Crucial 16GB DDR3 1600MHz | Gigabyte GTX 780 OC Windforce x3 | Samsung 840 Pro 128GB (x 2 RAID0) | be quiet! Straight Power E9 680W CM
Mercatino: bottoni, Dede371, pippokennedy, Bulbi_67, randose, DarkSiDE, davidepaco, _Legend_
Gremo è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2007, 04:01   #6
Gremo
Senior Member
 
L'Avatar di Gremo
 
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
entrambi gentilissimi e veloci grazie
preferisco la versione "nativa" di Jo3, provo subito!
__________________

Desktop: Intel i7-4770K | Asus Gryphon Z87 | Crucial 16GB DDR3 1600MHz | Gigabyte GTX 780 OC Windforce x3 | Samsung 840 Pro 128GB (x 2 RAID0) | be quiet! Straight Power E9 680W CM
Mercatino: bottoni, Dede371, pippokennedy, Bulbi_67, randose, DarkSiDE, davidepaco, _Legend_
Gremo è offline   Rispondi citando il messaggio o parte di esso
Old 23-07-2007, 12:30   #7
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Se vuoi usare l'XML, properties ha due metodi ad hoc, storeToXML e loadFromXML, funzionano come il load "normale" solo che salvano/leggono in un formato basato su XML.

C'è poi (Java 6) il package java.util.prefs che contiene gli strumenti utili a creare e gestire una sorta di registro di sistema o utente.

Usa XML, maneggia oggetti Preferences, è ramificabile, nel senso che hai 'sto documento unico che poi puoi suddividere. Ad esempio crei un nodo con il nome del produttore del software, dentro ci infili un nodo con il nome del software e là dentro ci sbatti le impostazioni del programma.

Guarda le classi PreferencesFactory (che ha due metodi) e Preferences (che ne ha un bel po' in più ma gli indispensabili sono i put, i get, remove e create).
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Grazie a VLT è stata misurata dir...
Blue Origin annuncia un aerofreno ripieg...
Blue Origin annuncia una nuova versione ...
LG UltraFine evo 6K: il primo monitor al...
DJI cambia direzione: investe in Elegoo ...
Black Friday Narwal 2025: risparmi da ca...
Phishing evoluto contro Apple ID: caso f...
Prestazioni in discesa nei giochi? NVIDI...
Addio ai banner dei cookie? L'UE spinge ...
Le offerte Black Friday per gli smartpho...
Il controllo qualità degli iPhone...
Qualcomm Snapdragon X Elite vola con il ...
A2RL Season 2: storia, innovazione e sor...
Core Ultra Series 3: Intel conferma l'ev...
Black Friday Amazon: la GeForce RTX 5070...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 07:06.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v