作业 2- 7
来源:2-7 自由编程
jia_蛙
2019-09-10 18:15:54
public class FileDemo1 {
public static void main(String[] args) {
//创建File对象
File file = new File("B:\\File\\Monday.docx");
//判断文件是否创建成功
if(!file.exists()) {
try {
//文件不存在时,则创建
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("创建文件成功!");
System.out.println("文件名称: " + file.getName());
System.out.println("文件上一级目录:" + file.getParent());
}
String str = null;
//判断是否是文件还是目录
if(file.isDirectory()) {
str = "目录";
System.out.println("文件/目录:这是一个目录");
}else if(file.isFile()){
str = "文件";
System.out.println("文件/目录:这是一个文件");
}
//判读读写性
if(file.canRead() && file.canWrite()) {
System.out.println("读写性:这个" + str + "可读也可以写");
}else if(file.canRead()) {
System.out.println("读写性:这个" + str + "只可以读");
}else if(file.canWrite()) {
System.out.println("读写性: 这个" + str + "只可以写");
}
}
结果:
创建文件成功!
文件名称: Monday.docx
文件上一级目录:B:\File
文件/目录:这是一个文件
读写性:这个文件可读也可以写1.老师 ,有没有什么方法 可以直接返回上一级的目录名,就是不带盘符的 文件上一级目录:B:\File -- > 文件上一级目录:File

2. 如果我创建File对象的时候的路径是错误的话,它会抛异常样,不是应该没有就会去创建嘛? 而且后面也没有判断是文件还是目录,我看了一下,如果路径是错误根本就不会创建出来。
1回答
同学你好,
1、可以使用 file.getParentFile().getName(),首先使用getParentFile()获得父目录的文件对象,然后通过.getName()获取父目录的文件名。具体修改如下:

2、同学可以看一下抛出的异常位置是在如下位置,也就是createNewFile() 处,并不是创建File对象处:

抛出异常的具体原因如下:
createNewFile() 方法的含义是根据路径创建一个新的空文件而不能创建目录,如果没有在电脑上新建目录则会报IO异常。
该方法表示如果指定的文件不存在并成功地创建,则返回 true;如果指定的文件已经存在,则返回 false。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!