oktatas:programozas:java:java_beallitasok
Tartalomjegyzék
Java config fájl
- Szerző: Sallai András
- Copyright © 2014, Sallai András
- Szerkesztve: 2014, 2023, 2024
- Licenc: CC BY-SA 4.0
- Web: https://szit.hu
A beállításokról
A programok számára tetszőleges névvel és kiterjesztéssel létrehozhatunk beállításokat tartalmazó fájlokat. Ezek lehetnek például .config vagy .properties kiterjesztésű állományok.
Egyszerű példa
- Program.config
Program.Nev = Teszt Program Program.Verzio = 1.0
A beállításokat beolvashatjuk egy Properties objektumba, illetve ki is írhatjuk azokat.
- Program.java
import java.io.FileInputStream; import java.io.InputStream; import java.util.Properties; class Program { public static void main(String[] argv) throws Exception { Properties beallitasok = new Properties(); String fajlNev = "Program.config"; InputStream befolyam = new FileInputStream(fajlNev); beallitasok.load(befolyam); System.out.println(beallitasok.getProperty("Program.Nev")); System.out.println(beallitasok.getProperty("Program.Verzio")); } }
Beállítás létezik-e
- database.properties
Database.Type = sqlite
import java.util.Properties; //... Properties properties = new Properties(); String fileName = "database.properties"; InputStream inputStream = new FileInputStream(fileName); properties.load(inputStream); if(properties.getProperty("Database.Type") == null) { System.out.println("Hiba! Nincs megadva az adatbázis típusa!"); return; }
A példában nincs kezelve a kivétel.
Beállítások fájlba írása/olvasása
Kiírás
- Program01.java
import java.util.Properties; import java.io.FileOutputStream; import java.io.IOException; class Program01 { public static void main(String args[]) { Properties pro = new Properties(); pro.setProperty("Első", "Nagy Lajos"); pro.setProperty("Második", "Kerek Béla"); try { pro.store(new FileOutputStream("config.properties"), null); }catch(IOException e) { System.err.println("Hiba a kiírás során!"); } } }
A null helyére String típusú megjegyzést írhatok.
Beolvasás
- Program01.java
import java.util.Properties; import java.io.FileInputStream; import java.io.IOException; class Program01 { public static void main(String args[]) { Properties pro = new Properties(); try { pro.load(new FileInputStream("config.properties")); System.out.println(pro.getProperty("Első")); System.out.println(pro.getProperty("Második")); }catch(IOException e) { System.err.println("Hiba a betöltés során!"); } } }
Osztállyal azonos útvonalról
Olvasás
- Program01.java
import java.util.Properties; import java.io.FileInputStream; import java.io.IOException; class Program01 { public static void main(String args[]) { Properties pro = new Properties(); try { pro.load(Program02.class.getClassLoader() .getResourceAsStream("config.properties")); System.out.println(pro.getProperty("Első")); System.out.println(pro.getProperty("Második")); }catch(IOException e) { System.err.println("Hiba a betöltés során!"); } } }
Olvasás példányosítás esetén
- Program01.java
import java.util.Properties; import java.io.FileInputStream; import java.io.IOException; class Program01 { public static void main(String args[]) { Options op = new Options(); op.oLoad(); } } class Options { public void oLoad() { Properties pro = new Properties(); try { pro.load(getClass().getClassLoader().getResourceAsStream("config.properties")); System.out.println(pro.getProperty("Első")); System.out.println(pro.getProperty("Második")); }catch(IOException e) { System.err.println("Hiba a betöltés során!"); } } }
UTF-8 használata
UTF-8 kiírása
- Program01.java
import java.util.Properties; import java.io.FileOutputStream; import java.io.IOException; import java.io.BufferedWriter; import java.io.Writer; import java.io.OutputStreamWriter; class Program05 { public static void main(String args[]) { Properties pro = new Properties(); pro.setProperty("Első", "Nagy Lajos"); pro.setProperty("Második", "Kerek Béla"); try { FileOutputStream f = new FileOutputStream("config.properties"); OutputStreamWriter o = new OutputStreamWriter(f, "UTF-8"); Writer out = new BufferedWriter(o); pro.store(out, null); }catch(IOException e) { System.err.println("Hiba a kiírás során!"); } } }
UTF-8 olvasása
- Program01.java
import java.util.Properties; import java.io.FileInputStream; import java.io.IOException; import java.io.Reader; import java.io.BufferedReader; import java.io.InputStreamReader; class Program06 { public static void main(String args[]) { Properties pro = new Properties(); try { FileInputStream f = new FileInputStream("config.properties"); InputStreamReader i = new InputStreamReader(f, "UTF-8"); Reader in = new BufferedReader(i); pro.load(in); System.out.println(pro.getProperty("Első")); System.out.println(pro.getProperty("Második")); }catch(IOException e) { System.err.println("Hiba a betöltés során!"); } } }
Kódolás ellenőrzése
- Program01.java
import java.util.Properties; import java.io.FileOutputStream; import java.io.IOException; import java.io.BufferedWriter; import java.io.Writer; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; class Program05 { public static void main(String args[]) { Properties pro = new Properties(); pro.setProperty("Első", "Nagy Lajos"); pro.setProperty("Második", "Kerek Béla"); try { FileOutputStream f = new FileOutputStream("config.properties"); OutputStreamWriter o = new OutputStreamWriter(f, "UTF-8"); Writer out = new BufferedWriter(o); pro.store(out, null); }catch(UnsupportedEncodingException e) { System.err.println("Hibás kódolás!"); }catch(IOException e) { System.err.println("Hiba a kiírás során!"); } } }
Properties és ResourceBundle
A properties és a ResourceBundle használható együtt. A ResourceBunle viszont arra való, hogy nyelvfüggő beállításokat tároljunk.
- Program01.java
import java.util.ResourceBundle; import java.util.Properties; import java.io.InputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; class Program01 { public static void main(String[] args) throws FileNotFoundException, IOException { ResourceBundle rb = ResourceBundle.getBundle("Program01"); System.out.println(rb.getString("Program.Verzio")); Properties p = new Properties(); InputStream fin = new FileInputStream("Program01.config"); p.load(fin); System.out.println(p.getProperty("Program.Verzio")); } }
Linkek
oktatas/programozas/java/java_beallitasok.txt · Utolsó módosítás: 2024/10/01 14:34 szerkesztette: admin