import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; public class Files { private static final boolean IsWindows = System.getProperty("os.name").equals("Windows"); private static void expect(boolean v) { if (! v) throw new RuntimeException(); } private static void isAbsoluteTest(boolean absolutePath) { File file = new File("test.txt"); if (absolutePath) { file = file.getAbsoluteFile(); } boolean isAbsolute = file.isAbsolute(); if (absolutePath) { expect(isAbsolute); } else { expect(!isAbsolute); } } private static void isRootParent() { if(!IsWindows) { File f = new File("/root"); File f2 = f.getParentFile(); System.out.println("------------"+f2); expect(f2.getPath().equals("/")); } } public static void main(String[] args) throws Exception { isAbsoluteTest(true); isAbsoluteTest(false); isRootParent(); { File f = new File("test.txt"); FileOutputStream out = new FileOutputStream(f); byte[] message = "hello, world!\n".getBytes("UTF-8"); out.write(message); out.close(); expect(f.lastModified() > 0); FileInputStream in = new FileInputStream(f); try { expect(in.available() == message.length); for (int i = 0; i < message.length; ++i) { in.read(); expect(in.available() == message.length - i - 1); } expect(in.read() == -1); expect(in.available() == 0); } finally { in.close(); } } if(IsWindows) { expect(new File("/c:\\test").getPath().equals("c:\\test")); } else { expect(new File("/c:\\test").getPath().equals("/c:\\test")); } expect(new File("foo/bar").getParent().equals("foo")); expect(new File("foo/bar/").getParent().equals("foo")); expect(new File("foo/bar//").getParent().equals("foo")); expect(new File("foo/nonexistent-directory").listFiles() == null); } }