You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.8 KiB
Java
71 lines
1.8 KiB
Java
package peery.file;
|
|
|
|
import java.io.BufferedReader;
|
|
import java.io.BufferedWriter;
|
|
import java.io.File;
|
|
import java.io.FileNotFoundException;
|
|
import java.io.FileReader;
|
|
import java.io.FileWriter;
|
|
import java.io.IOException;
|
|
import java.util.HashMap;
|
|
import java.util.Scanner;
|
|
|
|
import peery.log.Log;
|
|
import peery.log.LogLevel;
|
|
|
|
public class SettingsHandler {
|
|
|
|
public File settingsFile;
|
|
|
|
public SettingsHandler(FileHandler fh, String settings){
|
|
this.settingsFile = new File(fh.sourceFolder.getAbsolutePath()+fh.fs+settings);;
|
|
}
|
|
|
|
/**
|
|
* Saves the settings to file.
|
|
* @param settings
|
|
*/
|
|
public void saveSettings(HashMap<String, String> settings){
|
|
try {
|
|
Log.log(LogLevel.Info, "Saving settings to file ...");
|
|
BufferedWriter bw = new BufferedWriter(new FileWriter(settingsFile, false));
|
|
for(String key: settings.keySet()){
|
|
bw.write(key+"="+settings.get(key)+"\n");
|
|
bw.flush();
|
|
}
|
|
bw.close();
|
|
} catch (IOException e) {
|
|
Log.log(LogLevel.Error, "Couldn't write settings file at "+settingsFile.getAbsolutePath()+" ! Are write permissions missing?");
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Loads all settings from file.
|
|
* @return
|
|
*/
|
|
public HashMap<String, String> loadSettings(){
|
|
HashMap<String, String> settings;
|
|
try {
|
|
settings = new HashMap<String, String>();
|
|
Scanner sc = new Scanner(new BufferedReader(new FileReader(settingsFile)));
|
|
while(sc.hasNext()){
|
|
String raw = sc.nextLine();
|
|
if(!raw.matches(".*=.*")){
|
|
continue;
|
|
}
|
|
String[] entry = raw.split("=");
|
|
//System.out.println(entry[0]+":"+entry[1]);
|
|
settings.put(entry[0], entry[1]);
|
|
}
|
|
sc.close();
|
|
return settings;
|
|
} catch (FileNotFoundException e) {
|
|
Log.log(LogLevel.Error, "Couldn't load settings file at "+settingsFile.getAbsolutePath()+" ! Are read permissions missing?");
|
|
e.printStackTrace();
|
|
}
|
|
return null;
|
|
}
|
|
|
|
}
|