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());
	}
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值