Witam mam pytanko ponieważ tworze sobie settings w pliku yml do programu
ogółem wiem jak używać scanner itp w jakimś tam zakresie
ale jak np stworzyć taki config?
host: a
pass: b
user: c
itp?
Witam mam pytanko ponieważ tworze sobie settings w pliku yml do programu
ogółem wiem jak używać scanner itp w jakimś tam zakresie
ale jak np stworzyć taki config?
host: a
pass: b
user: c
itp?
Otwierasz jakiś notatnik, np. Notepad++
, wpisujesz do niego:
host: a
pass: b
user :c
I zapisujesz do pliku o nazwie np. config.cfg
.
Co w tym trudnego?
mógłbyś wyjaśnić? ja robie zazwyczaj coś takiego
public class Configuration {
File file;
public static void onLoad(){
file = new File("config.yml");
Scanner scanner = new Scanner();
scanner.getLine();
}
}
Patryk27 napisał(a):
Otwierasz jakiś notatnik, np.
Notepad++
, wpisujesz do niego:host: a
pass: b
user :c
I zapisujesz do pliku o nazwie np. `config.cfg`.
>
> Co w tym trudnego?
nie wiem jak to odczytac?
Trzeba przyznać, że po wpisaniu w Google "Java Config File" wyskakują jakieś dziwne rzeczy.
Przykładowy plik config.ini:
property1=value1
property2=value2
property3=value3
Java 1.8:
public static Map<String, String> read(String path) throws IOException {
Map<String, String> result =
Files.readAllLines(Paths.get(path))
.stream()
.map(x -> x.split("="))
.filter(x -> x.length > 1)
.collect(Collectors.toMap(x -> x[0].trim(), x -> x[1].trim()));
return result;
}
Java 1.7:
public static Map<String, String> read(String path) throws IOException {
Map<String, String> result = new HashMap<>();
String[] array;
for(String line: Files.readAllLines(Paths.get(path))){
array = line.split("=");
if(array.length > 1){
result.put(array[0], array[1]);
}
}
return result;
}
Albo skorzystać z np. klasy Properties. Osobiście tej klasy nie lubię (naprawdę trudno mi wytłumaczyć dlaczego, po prostu mi API nie pasuje) ale przetestowane projektowo i działa.
Jam masz yaml, to moze snakeyaml i jego metoda load()? Zwraca np. mape...