File类createNewFile时的一个注意点

 

 

今天体会到一个陷阱,刚开始还觉得是JDKbug呢,呵呵。

 

是这样的,有FilecreateNewFile方法是,在Windows系统上可以创建成功,而在Linux不行了,第一感觉是JDKbug,而且只会在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());
	}
 

 

你可能感兴趣的:(jdk,jsp,windows,linux)