我目前正在遷移到Java 7,並試圖將所有類都轉換爲使用新的java.nio.file
包。在一個點上,我嘗試檢查文件是否可讀和什麼類似於下面的代碼可寫:Java 7的Files.isReadable()和isWritable()需要很長時間才能返回
MyClass myObject = new MyClass();
Path path = Paths.get("testDir/sub1/sub2/test.txt");
myObject.setReadable(Files.isReadable(path));
myObject.setWritable(Files.isWritable(path));
當我測試這個使用JUnit(在Windows 7),這兩個和isWritable();
始終掛25秒每個回來之前。這是非常不可接受的。這可能是Windows的限制嗎?
我的應用程序最終將在unix上運行,但我還沒有機會對它進行測試。我想我應該指出,每一個我測試文件是用下面的代碼創建:
Files.createFile(Paths.get("testDir/sub1/sub2/test.txt"));
有什麼我可以做,以幫助加快速度吧?謝謝!
編輯: 因此,似乎path.toFile().canRead()
立即返回,canWrite()相同。如果涉及到它,我可以使用這些方法,但我真的只想使用java.nio.file包。
他們立即返回(18毫秒)後,我調用它們。 – johnchen902 2013-05-01 14:15:55
如果使用['File#canRead'](http://docs.oracle.com/javase/7/docs/api/java/io/File.html#canRead())和['File #canWrite'(http://docs.oracle.com/javase/7/docs/api/java/io/File.html#canWrite())? – 2013-05-01 14:17:49
@Lonenebula不,他們都立刻回來:S – lancex 2013-05-01 14:21:18