第1关:学习-Java输入输出之File类之获取文件信息
目录
第1关:学习-Java输入输出之File类之获取文件信息
任务描述
相关知识
编程要求
测试说明
代码:
任务描述
本关任务:判断给定的字符串是目录、文件路径还是其它。
相关知识
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
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,判断给定的字符串是目录、文件路径还是其它。具体要求如下:
- 接收给定的一行字符串(如:/test);
- 如果字符串是目录,输出该目录下的所有文件;
- 如果字符串是文件,获取文件名并输出文件大小;
- 如果既不是目录又不是文件,请输出提示语句:“非法字符串”。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。
例: 测试输入:
/test
预期输出:
[a.txt,b.txt]
测试输入:
/test/a.txt
预期输出:
a.txt
11
测试输入:
test
预期输出:
非法字符串
代码:
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 sc = new Scanner(System.in);
String s = sc.next();
// 创建文件对象
File f = new File(s);
// 如果字符串是文件,获取文件名并输出文件大小
if(f.isFile()){
String name = f.getName();
System.out.println(name);
long length = f.length();
System.out.println(length);
// 如果字符串是目录,输出该目录下的所有文件
}else if(f.isDirectory()){
String[] list = f.list();
System.out.println(Arrays.toString(list));
// 如果字符串既不是文件,又不是目录,输出提示语句:“非法字符串”
}else{
System.out.println("非法字符串");
}
/********** End **********/
}
}
开始你的任务吧,祝你成功!