WarpPI/core/src/main/java/it/cavallium/warppi/device/CacheFile.java

88 lines
1.8 KiB
Java
Raw Normal View History

package it.cavallium.warppi.device;
2018-09-04 12:12:41 +02:00
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 java.util.UUID;
import it.cavallium.warppi.StaticVars;
public class CacheFile {
private String path;
private ObjectOutputStream lastOOS;
private FileOutputStream lastFOS;
private ObjectInputStream lastOIS;
private FileInputStream lastFIS;
public CacheFile() {
do {
path = UUID.randomUUID().toString() + ".ser";
2018-09-04 12:12:41 +02:00
} while (new File(path).exists());
try {
2018-09-04 12:12:41 +02:00
File.createTempFile(StaticVars.calculatorNameLOWER, "");
2018-05-12 21:18:29 +02:00
} catch (final IOException e) {
e.printStackTrace();
}
}
public ObjectOutputStream getObjectOutputStram() {
if (lastOOS == null) {
try {
return new ObjectOutputStream(new FileOutputStream(path));
2018-05-12 21:18:29 +02:00
} catch (final IOException e) {
e.printStackTrace();
return lastOOS;
}
} else {
return lastOOS;
}
}
public ObjectInputStream getObjectInputStram() {
if (lastOIS == null) {
try {
return new ObjectInputStream(new FileInputStream(path));
2018-05-12 21:18:29 +02:00
} catch (final IOException e) {
return lastOIS;
}
} else {
return lastOIS;
}
}
public void closeStreams() {
try {
if (lastOOS != null) {
lastOOS.close();
lastOOS = null;
}
if (lastFOS != null) {
lastFOS.close();
lastFOS = null;
}
if (lastOIS != null) {
lastOIS.close();
lastOIS = null;
}
if (lastFIS != null) {
lastFIS.close();
lastFIS = null;
}
2018-05-12 21:18:29 +02:00
} catch (final IOException e) {
e.printStackTrace();
}
}
public void dispose() {
closeStreams();
try {
2018-09-04 12:12:41 +02:00
new File(path).delete();
} catch (final Exception e) {
e.printStackTrace();
}
}
}