public boolean obtain() throws IOException { synchronized (files) { if (!fileExists(name)) { createFile(name).close(); return true; } return false; } } public void release() {
private RAMDirectory(Directory dir, boolean closeDir) throws IOException { final String[] files = dir.list(); for (int i = 0; i < files.length; i++) { // make place on ram disk OutputStream os = createFile(files[i]); // read current file InputStream is = dir.openFile(files[i]); // and copy to ram disk int len = (int) is.length(); byte[] buf = new byte[len]; is.readBytes(buf, 0, len); os.writeBytes(buf, len); // graceful cleanup is.close(); os.close(); } if(closeDir) dir.close(); }