115 lines
3.5 KiB
Java
115 lines
3.5 KiB
Java
package com.dayrain.utils;
|
|
|
|
import com.dayrain.component.Configuration;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
import java.io.BufferedReader;
|
|
import java.io.BufferedWriter;
|
|
import java.io.File;
|
|
import java.io.FileInputStream;
|
|
import java.io.FileOutputStream;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.io.InputStreamReader;
|
|
import java.io.OutputStreamWriter;
|
|
import java.nio.charset.StandardCharsets;
|
|
|
|
public class FileUtils {
|
|
|
|
public static void saveConfig(Configuration configuration) {
|
|
|
|
saveConfig(configuration, getConfigFile());
|
|
}
|
|
|
|
public static void saveConfig(Configuration configuration, File file) {
|
|
|
|
BufferedWriter bufferedWriter = null;
|
|
try {
|
|
String config = new ObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(configuration);
|
|
bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8));
|
|
bufferedWriter.write(config);
|
|
bufferedWriter.flush();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
} finally {
|
|
try {
|
|
if (bufferedWriter != null) {
|
|
bufferedWriter.close();
|
|
}
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
public static Configuration load() {
|
|
|
|
return load(getConfigFile());
|
|
}
|
|
|
|
public static Configuration load(File file) {
|
|
BufferedReader bufferedReader = null;
|
|
try {
|
|
StringBuilder configStr = new StringBuilder();
|
|
bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8));
|
|
String buf;
|
|
while ((buf = bufferedReader.readLine()) != null) {
|
|
configStr.append(buf);
|
|
}
|
|
return "".equals(configStr.toString()) ? new Configuration(1200, 800, 8, 8) : new ObjectMapper().readValue(configStr.toString(), Configuration.class);
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
} finally {
|
|
try {
|
|
if (bufferedReader != null) {
|
|
bufferedReader.close();
|
|
}
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
|
|
public static String getFromInputStream(InputStream inputStream) {
|
|
try {
|
|
byte[] buf = new byte[4096];
|
|
int len = 0;
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
while ((len = inputStream.read(buf)) != -1) {
|
|
stringBuilder.append(new String(buf, 0, len));
|
|
}
|
|
return stringBuilder.toString();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
private static File getConfigFile() {
|
|
String property = System.getProperty("user.dir");
|
|
File file = new File(property + File.separator + "config" + File.separator + "config.json");
|
|
if (!file.exists()) {
|
|
|
|
File dir = new File(property + File.separator + "config");
|
|
if (!dir.exists()) {
|
|
dir.mkdirs();
|
|
}
|
|
|
|
try {
|
|
file.createNewFile();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
Configuration configuration = new Configuration(1200, 800, 8, 8);
|
|
saveConfig(configuration, file);
|
|
}
|
|
return file;
|
|
}
|
|
|
|
|
|
}
|