今天体会到一个陷阱,刚开始还觉得是JDK的bug呢,呵呵。
是这样的,有File的createNewFile方法是,在Windows系统上可以创建成功,而在Linux不行了,第一感觉是JDK的bug,而且只会在Linux上出现的取决于。
原来一番实验后,发现原来我Windows系统上已经有父目录了,而Linux上没有,这样一来,Linux上肯定会失败了。
写下来记在这里。
实验代码如下:
public static void main(String[] args) throws IOException {
String filePath = "."+File.separator +"farParentfile" + File.separator + "parentFile"+File.separator + "test.jsp";
File file = new File(filePath);
if (!file.getParentFile().exists()) {
if (!file.getParentFile().mkdirs()) {
}
}
if(!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println("exist: " +file.exists() );
System.out.println("path: " + file.getCanonicalPath());
}