学习-Java输入输出之File类之获取文件信息

第1关:学习-Java输入输出之File类之获取文件信息

任务描述

本关任务:判断给定的字符串是目录、文件路径还是其它。

相关知识

File 对象既可以表示文件,又可以表示目录,下面我们来了解一下更多关于 File 对象的操作。 #####获取文件信息常用方法 已知在C:/Users/yy/Desktop/file目录下有文件a.txtb.txt。 当 File 对象表示目录时,有以下常用方法获取文件信息:

 
  1. public static void main(String[] args) throws IOException{
  2. File f = new File("C:\\Users\\yy\\Desktop\\file");
  3. // 判断是否是目录
  4. boolean directory1 = f.isDirectory();
  5. System.out.println(directory1);
  6. // 返回定义文件对象的路径
  7. String path = f.getPath();
  8. System.out.println(path);
  9. // 返回绝对路径
  10. String absolutePath = f.getAbsolutePath();
  11. System.out.println(absolutePath);
  12. // 以字符串数组的形式,返回当前文件夹下的所有文件(不包含子文件及子文件夹)
  13. String[] list = f.list();
  14. System.out.println(Arrays.toString(list));
  15. // 以文件数组的形式,返回当前文件夹下的所有文件(不包含子文件及子文件夹)
  16. File[] fs= f.listFiles();
  17. System.out.println(Arrays.toString(fs));
  18. // 以字符串形式返回所在文件夹
  19. String parent = f.getParent();
  20. System.out.println(parent);
  21. // 以文件形式返回所在文件夹
  22. File parentFile = f.getParentFile();
  23. System.out.println(parentFile);
  24. }

执行结果:

 
  1. true
  2. C:\Users\yy\Desktop\file
  3. C:\Users\yy\Desktop\file
  4. [a.txt, b.txt]
  5. [C:\Users\yy\Desktop\file\a.txt, C:\Users\yy\Desktop\file\b.txt]
  6. C:\Users\yy\Desktop
  7. C:\Users\yy\Desktop

当 File 对象表示文件时,有以下常用方法获取文件信息:

 
  1. public static void main(String[] args) throws IOException{
  2. File f = new File("C:\\Users\\yy\\Desktop\\file\\a.txt");
  3. // 判断是否是文件
  4. boolean file = f.isFile();
  5. System.out.println(file);
  6. // 获取文件字节大小
  7. long length = f.length();
  8. System.out.println(length);
  9. // 判断文件是否可读
  10. boolean b = f.canRead();
  11. System.out.println(b);
  12. // 判断文件是否可写
  13. boolean b1 = f.canWrite();
  14. // 判断文件是否存在
  15. boolean exists = f.exists();
  16. System.out.println(exists);
  17. // 获取文件名字
  18. String name = f.getName();
  19. System.out.print(name);
  20. }

执行结果:

 
  1. true
  2. 10
  3. true
  4. true
  5. a.txt
编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,判断给定的字符串是目录、文件路径还是其它。具体要求如下:

  • 接收给定的一行字符串(如:/test);
  • 如果字符串是目录,输出该目录下的所有文件;
  • 如果字符串是文件,获取文件名并输出文件大小;
  • 如果既不是目录又不是文件,请输出提示语句:“非法字符串”。
测试说明

平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。

例: 测试输入:

 
  1. /test

预期输出:

 
  1. [a.txt,b.txt]

测试输入:

 
  1. /test/a.txt

预期输出:

 
  1. a.txt
  2. 11

测试输入:

 
  1. test

预期输出:

 
  1. 非法字符串

开始你的任务吧,祝你成功!

源代码:

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 if (file.isDirectory()){
            String[] list = file.list();
            System.out.println(Arrays.toString(list));
        }
        // 如果字符串既不是文件,又不是目录,请做相应操作
        else {
            System.out.println("非法字符串");
        }
        /********** End **********/
    }
}

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值