package my.test.store.fs; import java.io.File; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import org.h2.store.fs.FileUtils; public class FileUtilsTest { /** * @param args */ public static void main(String[] args) throws Exception { //test("file"); //test("nio"); //test("nioMapped"); //test("memFS"); //test("split"); //new File("E:\\H2\\tmp\\FileStoreTest\\my.txt").toURL(); testFilePathZip(); } public static void testFilePathZip() throws Exception { System.setProperty("user.home", "E:/H2/lib"); //FileUtils.newInputStream("zip:~/servlet-api-2.4.jar"); //不能直接打开jar //FileUtils.newInputStream("zip:~/servlet-api-2.4.jar!/javax/servlet/Filter.class "); //最后不能有空格 //感叹号后面有没有/都是可以的 //FileUtils.newInputStream("zip:~/servlet-api-2.4.jar!javax/servlet/Filter.class"); FileUtils.newInputStream("zip:~/servlet-api-2.4.jar!/javax/servlet/Filter.class"); p(FileUtils.exists("zip:~/servlet-api-2.4.jar")); p(FileUtils.exists("zip:~/servlet-api-2.4.jar!javax")); p(FileUtils.unwrap("zip:~/servlet-api-2.4.jar!javax")); } public static void main2(String[] args) throws Exception { String fileName = null; String mode = null; mode = "rw"; fileName = "E:\\H2\\tmp\\FileStoreTest\\my.txt"; //name = "file:E:\\H2\\tmp\\FileStoreTest\\my.txt"; //name = "cache:E:\\H2\\tmp\\FileStoreTest\\my.txt"; fileName = "memFS:E:\\H2\\tmp\\FileStoreTest\\my.txt"; System.setProperty("user.home", "E:/H2/tmp/FileStoreTest"); fileName = "~"; fileName = "file:~/my.txt"; FileChannel fc = FileUtils.open(fileName, mode); ByteBuffer src = ByteBuffer.allocate(1024); src.put("ddddddddd".getBytes()); src.flip(); fc.write(src); fc.close(); p(FileUtils.exists(fileName)); FileUtils.createDirectory("~/abc"); p(FileUtils.exists("~/abc")); FileUtils.createFile("~/a.txt"); p(FileUtils.exists("~/a.txt")); FileUtils.delete("~/a.txt"); p(FileUtils.exists("~/a.txt")); FileUtils.delete("file:~/my2.txt"); FileUtils.move(fileName, "file:~/my2.txt"); FileUtils.delete("file:~/my2.txt"); FileUtils.createFile("~/a22.txt"); p(FileUtils.newDirectoryStream("~")); p(new File(".").getCanonicalFile()); FileUtils.newInputStream("classpath:my/test/store/fs/FileUtilsTest.class"); p(FileUtils.createTempFile("file:~/my3", "log", true, false)); } public static void test(String scheme) throws Exception { String fileName = null; String mode = null; mode = "rw"; fileName = "E:\\H2\\tmp\\FileStoreTest\\my.txt"; //name = "file:E:\\H2\\tmp\\FileStoreTest\\my.txt"; //name = "cache:E:\\H2\\tmp\\FileStoreTest\\my.txt"; fileName = "memFS:E:\\H2\\tmp\\FileStoreTest\\my.txt"; System.setProperty("user.home", "E:/H2/tmp/FileStoreTest"); fileName = "~"; fileName = scheme+":~/my.txt"; FileChannel fc = FileUtils.open(fileName, mode); ByteBuffer src = ByteBuffer.allocate(1024); src.put("ddddddddd".getBytes()); src.flip(); fc.write(src); fc.close(); p(FileUtils.exists(fileName)); FileUtils.createDirectory("~/abc"); p(FileUtils.exists("~/abc")); FileUtils.createFile("~/a.txt"); p(FileUtils.exists("~/a.txt")); FileUtils.delete("~/a.txt"); p(FileUtils.exists("~/a.txt")); FileUtils.delete(scheme+":~/my2.txt"); FileUtils.move(fileName, scheme+":~/my2.txt"); FileUtils.delete(scheme+":~/my2.txt"); FileUtils.createFile("~/a22.txt"); p(FileUtils.newDirectoryStream("~")); p(new File(".").getCanonicalFile()); FileUtils.newInputStream("classpath:my/test/store/fs/FileUtilsTest.class"); p(FileUtils.createTempFile(scheme+":~/my3", "log", true, false)); } static void p(Object v) { System.out.println(v.toString()); } }