Create SaveLoad.java
This commit is contained in:
+123
@@ -0,0 +1,123 @@
|
||||
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.ObjectOutputStream;
|
||||
|
||||
import javax.swing.JFileChooser;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.filechooser.FileFilter;
|
||||
|
||||
public class SaveLoad {
|
||||
|
||||
public static void saveFile(Object obj)
|
||||
{
|
||||
JFileChooser fileChooser = new JFileChooser();
|
||||
|
||||
fileChooser.setFileFilter(new FileFilter() {
|
||||
@Override
|
||||
public boolean accept(File pathname) {
|
||||
if(pathname.isFile() && pathname.getName().endsWith(".agn"))
|
||||
{
|
||||
return true;
|
||||
}else if(pathname.isDirectory()){return true;}else{return false;}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return "Agenda (.agn)";
|
||||
}
|
||||
|
||||
});
|
||||
fileChooser.setDialogTitle("Choose save location");
|
||||
int userSelection = fileChooser.showSaveDialog(null);
|
||||
|
||||
if(userSelection == JFileChooser.APPROVE_OPTION)
|
||||
{
|
||||
File file = fileChooser.getSelectedFile();
|
||||
if(!file.getName().endsWith(".agn"))
|
||||
{
|
||||
file = new File(file.getAbsolutePath() + ".agn");
|
||||
}
|
||||
|
||||
if(file.exists())
|
||||
{
|
||||
if(JOptionPane.showConfirmDialog(null, "Are you sure you want to overwrite: " + file.getName(), "Overwrite", JOptionPane.YES_NO_OPTION) == JOptionPane.OK_OPTION)
|
||||
{
|
||||
save(obj, file);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
save(obj, file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static Object loadFile()
|
||||
{
|
||||
JFileChooser fileChooser = new JFileChooser();
|
||||
fileChooser.setFileFilter(new FileFilter() {
|
||||
@Override
|
||||
public boolean accept(File pathname) {
|
||||
if(pathname.isFile() && pathname.getName().endsWith(".agn"))
|
||||
{
|
||||
return true;
|
||||
}else if(pathname.isDirectory()){return true;}else{return false;}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return "Agenda (.agn)";
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
fileChooser.setDialogTitle("Choose file");
|
||||
int userSelection = fileChooser.showOpenDialog(null);
|
||||
|
||||
if(userSelection == JFileChooser.APPROVE_OPTION)
|
||||
{
|
||||
File file = fileChooser.getSelectedFile();
|
||||
if(!file.exists())
|
||||
{
|
||||
JOptionPane.showMessageDialog(null, "This file does not exist: " + file.getName());
|
||||
}
|
||||
else
|
||||
{
|
||||
return load(file);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private static void save(Object obj, File file)
|
||||
{
|
||||
ObjectOutputStream oostr = null;
|
||||
try {
|
||||
oostr = new ObjectOutputStream(new FileOutputStream(file));
|
||||
oostr.writeObject(obj);
|
||||
oostr.flush();
|
||||
oostr.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private static Object load(File file)
|
||||
{
|
||||
ObjectInputStream oistr = null;
|
||||
try {
|
||||
oistr = new ObjectInputStream(new FileInputStream(file));
|
||||
Object obj = oistr.readObject();
|
||||
oistr.close();
|
||||
return obj;
|
||||
} catch (IOException | ClassNotFoundException e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user