关于File的isFile()方法一直返回false问题

关于File的isFile()方法一直返回false问题

​相关代码:public static void main(String[] args) {
File file=new File("D:\\File");
File file2=new File("D:\\File\\Monday.docx");
if(!file.exists()) {
file.mkdir();
File file1=new File("D:\\File","Monday.docx");
if(!file1.exists()) {
try {
File.createTempFile("Monday", ".docx", file);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("创建文件成功!");
System.out.println("文件名称:"+file1.getName());
System.out.println("文件上一级目录:"+file1.getParentFile().getName());
System.out.print("文件/目录:");
if(file1.isFile()) {
System.out.println("这是一个文件");
}else {
System.out.println("这不是一个文件");
}
if(file1.isDirectory()) {
System.out.println("这是一个目录");
}else {
System.out.println("这不是一个目录");
}
System.out.print("读写性:");
if(file2.canRead()) {
System.out.println("这个文件可读");
if(file2.canWrite()) {
System.out.println("这个文件既可以读也可以写");
}else {
System.out.println("这个文件可以读,不可写");
}
}else {
System.out.println("这个文件不可读");
}
}
}else {
file2.delete();
}

}


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,测试同学贴出代码,isFile()方法一直返回false,是同学的文件并没有创建成功,同学在创建文件过程中有如下问题,

    ​1)、不需要重复判断文件夹是否存在。

http://img1.sycdn.imooc.com//climg/610f8a750964723505670327.jpg

    ​2、建议在执行file.mkdir();后,执行跳出当前步骤,重新执行创建文件的内容。

    ​3、在创建文件时,调用的对象注意是对象,而不是直接使用File类。

http://img1.sycdn.imooc.com//climg/610f8ad5090ccb0306450079.jpg

修改后的代码如下

public static void main(String[] args) {
File file = new File("D:\\File");
File file2 = new File("D:\\File\\Monday.docx");


if (!file.exists()) {
file.mkdir();
}
File file1 = new File("D:\\File", "Monday.docx");
//if (!file1.exists()) {
try {
//File.createTempFile("Monday", ".docx", file);
file1.createTempFile("Monday", ".docx", file);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("创建文件成功!");
System.out.println("文件名称:" + file1.getName());
System.out.println("文件上一级目录:" + file1.getParentFile().getName());
System.out.print("文件/目录:");


if (file1.isFile()) {
System.out.println("这是一个文件");
} else {
System.out.println("这不是一个文件");
}
if (file1.isDirectory()) {
System.out.println("这是一个目录");
} else {
System.out.println("这不是一个目录");
}
System.out.print("读写性:");
if (file2.canRead()) {
System.out.println("这个文件可读");
if (file2.canWrite()) {
System.out.println("这个文件既可以读也可以写");
} else {
System.out.println("这个文件可以读,不可写");
}
} else {
System.out.println("这个文件不可读");
}
//}
// } else {
// file2.delete();
// }

}

​祝学习愉快~

  • 慕村4629685 提问者 #1

    老师您好,我创建文件的方法是api中的createTempFile(String,String,File),此方法是静态的

    2021-08-08 15:59:11
  • 好帮手慕小班 回复 提问者 慕村4629685 #2

    同学你好,非常抱歉是老师没有注意这个问题,同学使用File.createTempFile("Monday", ".docx", file);也是正确的,也是可以正确创建文件的。

    祝学习愉快~

    2021-08-08 16:09:39
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师