import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.nio.file.attribute.FileAttribute;
-import java.util.HashMap;
import java.util.HashSet;
-import java.util.Map;
import java.util.Set;
import org.simantics.databoard.file.RuntimeIOException;
public class FileIO {
-
- private static final FileAttribute<?>[] NO_ATTRIBUTES = new FileAttribute[0];
-
+
+ private static final FileAttribute<?>[] NO_ATTRIBUTES = {};
+
private static final Set<OpenOption> CREATE_OPTIONS = new HashSet<>(2);
private static final Set<OpenOption> APPEND_OPTIONS = new HashSet<>(1);
-
+
static {
CREATE_OPTIONS.add(StandardOpenOption.WRITE);
CREATE_OPTIONS.add(StandardOpenOption.CREATE);
-
+
APPEND_OPTIONS.add(StandardOpenOption.APPEND);
}
-
+
private Path path;
private int writePosition = 0;
- private FileIO(Path path) {
+ public FileIO(Path path) {
this.path = path;
}
-
- private static Map<Path, FileIO> map = new HashMap<Path, FileIO>();
-
- public static FileIO get(Path path) {
- synchronized(map) {
- FileIO existing = map.get(path);
- if(existing == null) {
- existing = new FileIO(path);
- map.put(path, existing);
- }
- return existing;
- }
- }
-
+
//private static final boolean TRACE_SWAP = false;
private static final boolean TRACE_PERF = false;