X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.util%2Fsrc%2Forg%2Fargeo%2Futil%2FLangUtils.java;fp=org.argeo.util%2Fsrc%2Forg%2Fargeo%2Futil%2FLangUtils.java;h=3b29e868c13291b05751869174ce39e67ffc26a3;hb=82dbb6068c494047bce1ab170f2f6b8b608b2a42;hp=c94db9d3044655540e0991fd4fa6393c8dc499f5;hpb=29124fe0873f352b388611614543aa9c3145ef43;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.util/src/org/argeo/util/LangUtils.java b/org.argeo.util/src/org/argeo/util/LangUtils.java index c94db9d30..3b29e868c 100644 --- a/org.argeo.util/src/org/argeo/util/LangUtils.java +++ b/org.argeo.util/src/org/argeo/util/LangUtils.java @@ -1,8 +1,15 @@ package org.argeo.util; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.Dictionary; import java.util.Enumeration; import java.util.Hashtable; +import java.util.Map; +import java.util.Properties; public class LangUtils { /* @@ -24,7 +31,7 @@ public class LangUtils { */ /** - * Creates a new {@link Dictionary} with one key-value pair (neith key not + * Creates a new {@link Dictionary} with one key-value pair (neither key not * value should be null) */ public static Dictionary init(String key, Object value) { @@ -72,6 +79,30 @@ public class LangUtils { return sb.toString(); } + public static void storeAsProperties(Dictionary props, Path path) throws IOException { + if (props == null) + throw new IllegalArgumentException("Props cannot be null"); + Properties toStore = new Properties(); + for (Enumeration keys = props.keys(); keys.hasMoreElements();) { + String key = keys.nextElement(); + toStore.setProperty(key, props.get(key).toString()); + } + try (OutputStream out = Files.newOutputStream(path)) { + toStore.store(out, null); + } + } + + public static Dictionary loadFromProperties(Path path) throws IOException { + Properties toLoad = new Properties(); + try (InputStream in = Files.newInputStream(path)) { + toLoad.load(in); + } + Dictionary res = new Hashtable(); + for (Object key : toLoad.keySet()) + res.put(key.toString(), toLoad.get(key)); + return res; + } + /** Singleton constructor. */ private LangUtils() {