任务描述
本关任务:判断给定的字符串是目录、文件路径还是其它。
相关知识
File 对象既可以表示文件,又可以表示目录,下面我们来了解一下更多关于 File 对象的操作。 #####获取文件信息常用方法 已知在C:/Users/yy/Desktop/file
目录下有文件a.txt
和b.txt
。 当 File 对象表示目录时,有以下常用方法获取文件信息:
public static void main(String[] args) throws IOException{
File f = new File("C:\\Users\\yy\\Desktop\\file");
// 判断是否是目录
boolean directory1 = f.isDirectory();
System.out.println(directory1);
// 返回定义文件对象的路径
String path = f.getPath();
System.out.println(path);
// 返回绝对路径
String absolutePath = f.getAbsolutePath();
System.out.println(absolutePath);
// 以字符串数组的形式,返回当前文件夹下的所有文件(不包含子文件及子文件夹)
String[] list = f.list();
System.out.println(Arrays.toString(list));
// 以文件数组的形式,返回当前文件夹下的所有文件(不包含子文件及子文件夹)
File[] fs= f.listFiles();
System.out.println(Arrays.toString(fs));
// 以字符串形式返回所在文件夹
String parent = f.getParent();
System.out.println(parent);
// 以文件形式返回所在文件夹
File parentFile = f.getParentFile();
System.out.println(parentFile);
}
执行结果:
true
C:\Users\yy\Desktop\file
C:\Users\yy\Desktop\file
[a.txt, b.txt]
[C:\Users\yy\Desktop\file\a.txt, C:\Users\yy\Desktop\file\b.txt]
C:\Users\yy\Desktop
C:\Users\yy\Desktop
当 File 对象表示文件时,有以下常用方法获取文件信息:
public static void main(String[] args) throws IOException{
File f = new File("C:\\Users\\yy\\Desktop\\file\\a.txt");
// 判断是否是文件
boolean file = f.isFile();
System.out.println(file);
// 获取文件字节大小
long length = f.length();
System.out.println(length);
// 判断文件是否可读
boolean b = f.canRead();
System.out.println(b);
// 判断文件是否可写
boolean b1 = f.canWrite();
// 判断文件是否存在
boolean exists = f.exists();
System.out.println(exists);
// 获取文件名字
String name = f.getName();
System.out.print(name);
}
执行结果:
true
10
true
true
a.txt
import java.io.*;
import java.util.Arrays;
import java.util.Scanner;
public class FileTest {
public static void main(String[] args) throws IOException {
// 请在Begin-End间编写完整代码
/********** Begin **********/
// 接收给定字符串
Scanner input = new Scanner(System.in);
String str = input.nextLine();
// 创建文件对象
File file = new File(str);
// 如果字符串是文件,请做相应操作
if (file.isFile()){
System.out.println(file.getName());
System.out.println(file.length());
}
// 如果字符串是目录,请做相应操作
else if (file.isDirectory()){
String[] list = file.list();
System.out.println(Arrays.toString(list));
}
// 如果字符串既不是文件,又不是目录,请做相应操作
else {
System.out.println("非法字符串");
}
/********** End **********/
}
}