final/src/FileManager.java

52 lines
1.9 KiB
Java

//This class allows us to input and output flies useful for
//Inputing levels and making save data.
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
// TODO: close scanner etc after use
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();
}
}
public static Object readObjectFromFile(String fileLocation, List<String> allowedObject) throws IOException, ClassNotFoundException {
ObjectInputStream objectStream;
Object o;
FileInputStream fileStream = new FileInputStream(fileLocation);
if (!allowedObject.contains("Any")) {
objectStream = new SafeObjectInputStream(fileStream, allowedObject);
} else {
objectStream = new ObjectInputStream(fileStream);
}
o = objectStream.readObject();
objectStream.close();
fileStream.close();
return o;
}
public static void writeObjectToFile(String fileLocation, Object o) throws IOException {
FileOutputStream fileStream = new FileOutputStream(fileLocation);
ObjectOutputStream objectStream = new ObjectOutputStream(fileStream);
objectStream.writeObject(o);
objectStream.close();
fileStream.close();
}
}