package my.test.store; import org.h2.api.JavaObjectSerializer; import org.h2.message.DbException; import org.h2.store.DataHandler; import org.h2.store.FileStore; import org.h2.store.LobStorageInterface; import org.h2.util.MathUtils; import org.h2.util.SmallLRUCache; import org.h2.util.TempFileDeleter; import org.h2.value.CompareMode; public class FileStoreTest { /** * @param args */ public static void main(String[] args) { String name = null; FileStore store; MyDataHandler dh = new MyDataHandler(); String mode = null; mode = "rw"; name = "E:\\H2\\tmp\\FileStoreTest\\my.txt"; //name = "file:E:\\H2\\tmp\\FileStoreTest\\my.txt"; //name = "cache:E:\\H2\\tmp\\FileStoreTest\\my.txt"; name = "memFS:E:\\H2\\tmp\\FileStoreTest\\my.txt"; System.setProperty("user.home", "E:/H2/tmp"); name = "~"; name = "file:~/FileStoreTest/my.txt"; store = getFileStore(dh, name, mode); //store = getSecureFileStore(dh, name, mode); store.setCheckedWriting(false); try { store.init(); } catch (DbException e) { store.closeSilently(); throw e; } } static FileStore getFileStore(MyDataHandler dh, String name, String mode) { return FileStore.open(dh, name, mode); } static FileStore getSecureFileStore(MyDataHandler dh, String name, String mode) { String cipher = "AES"; byte[] fileEncryptionKey = MathUtils.secureRandomBytes(1264); return FileStore.open(dh, name, mode, cipher, fileEncryptionKey, 0); } static class MyDataHandler implements DataHandler { @Override public String getDatabasePath() { return null; } @Override public FileStore openFile(String name, String mode, boolean mustExist) { return null; } @Override public void checkPowerOff() throws DbException { } @Override public void checkWritingAllowed() throws DbException { } @Override public int getMaxLengthInplaceLob() { return 0; } @Override public String getLobCompressionAlgorithm(int type) { return null; } @Override public TempFileDeleter getTempFileDeleter() { return TempFileDeleter.getInstance(); } @Override public Object getLobSyncObject() { return null; } @Override public SmallLRUCache<String, String[]> getLobFileListCache() { return null; } @Override public LobStorageInterface getLobStorage() { return null; } @Override public int readLob(long lobId, byte[] hmac, long offset, byte[] buff, int off, int length) { return 0; } @Override public JavaObjectSerializer getJavaObjectSerializer() { return null; } @Override public CompareMode getCompareMode() { // TODO Auto-generated method stub return null; } } }