2022-06-12 23:22:13 +01:00
|
|
|
//This class allows us to input and output flies useful for
|
|
|
|
//Inputing levels and making save data.
|
2022-06-10 16:23:28 +01:00
|
|
|
import java.io.*;
|
2022-06-14 19:54:55 +01:00
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.List;
|
2022-06-03 18:08:59 +01:00
|
|
|
import java.util.Scanner;
|
|
|
|
|
2022-06-10 16:23:28 +01:00
|
|
|
// TODO: close scanner etc after use
|
2022-06-03 18:08:59 +01:00
|
|
|
public class FileManager {
|
|
|
|
public static void writeFile(String fileLocation, String writeString) throws IOException {
|
|
|
|
File newFile = new File(fileLocation);
|
|
|
|
FileWriter fileWriter = new FileWriter(newFile);
|
|
|
|
fileWriter.write(writeString);
|
|
|
|
fileWriter.close();
|
|
|
|
}
|
|
|
|
|
|
|
|
// will create file if it doesn't exist
|
|
|
|
public static String readFile(String fileLocation) throws IOException {
|
|
|
|
File newFile = new File(fileLocation);
|
|
|
|
if (newFile.createNewFile()) {
|
|
|
|
return null;
|
|
|
|
} else {
|
|
|
|
Scanner fileReader = new Scanner(newFile);
|
|
|
|
// using the delimiter \\Z reads the entire file at once
|
|
|
|
return fileReader.useDelimiter("\\Z").next();
|
|
|
|
}
|
|
|
|
}
|
2022-06-10 16:23:28 +01:00
|
|
|
|
2022-06-14 19:54:55 +01:00
|
|
|
public static Object readObjectFromFile(String fileLocation, List<String> allowedObject) throws IOException, ClassNotFoundException {
|
2022-06-15 02:34:35 +01:00
|
|
|
ObjectInputStream objectStream;
|
2022-06-16 22:28:59 +01:00
|
|
|
Object o;
|
2022-06-10 16:23:28 +01:00
|
|
|
FileInputStream fileStream = new FileInputStream(fileLocation);
|
2022-06-15 02:34:35 +01:00
|
|
|
if (!allowedObject.contains("Any")) {
|
|
|
|
objectStream = new SafeObjectInputStream(fileStream, allowedObject);
|
|
|
|
} else {
|
|
|
|
objectStream = new ObjectInputStream(fileStream);
|
|
|
|
}
|
2022-06-16 22:28:59 +01:00
|
|
|
o = objectStream.readObject();
|
2022-06-16 18:31:44 +01:00
|
|
|
objectStream.close();
|
|
|
|
fileStream.close();
|
2022-06-16 22:28:59 +01:00
|
|
|
return o;
|
2022-06-10 16:23:28 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
public static void writeObjectToFile(String fileLocation, Object o) throws IOException {
|
|
|
|
FileOutputStream fileStream = new FileOutputStream(fileLocation);
|
|
|
|
ObjectOutputStream objectStream = new ObjectOutputStream(fileStream);
|
|
|
|
objectStream.writeObject(o);
|
2022-06-16 18:31:44 +01:00
|
|
|
objectStream.close();
|
|
|
|
fileStream.close();
|
2022-06-10 16:23:28 +01:00
|
|
|
}
|
2022-06-03 18:08:59 +01:00
|
|
|
}
|