头歌java课程实验(文件操作)

第1关:显示文件列表信息及文件内容

任务描述
本关任务:显示当前目录下的文件列表及当前目录下Hello.txt的文件内容

编程要求
(1)文件列表显示文件最后修改的日期
(2)对目录,显示<DIR>,对文件,显示文件大小
(3)先显示所有的目录信息,然后显示文件信息
(4)多个目录或文件的显示无需按日期排序
(5)具体的输出格式参考运行示例,仅供参考
提醒:将运行示例复制到记事本中可能看得更清晰。

运行示例
当前目录 C:\Users\Ldf\git\java22 的文件列表如下:
2024-05-12 15:50:29  <DIR>         .settings
2024-05-26 06:40:44  <DIR>         .git
2024-06-02 09:45:52  <DIR>         src
2024-06-11 09:33:52  <DIR>         bin
2024-03-21 06:17:22            15  .gitignore
2024-05-12 16:16:24           381  .project
2024-06-01 09:53:14           396  .classpath
2024-06-11 10:58:08            96  Hello.txt

文件 C:\Users\Ldf\git\java22\Hello.txt 的内容如下:
你好世界,我是 Hello.txt
我就是一个文本文件

测试说明
平台会对你编写的代码进行测试~

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

import java.io.*;
import java.nio.file.*;
import java.time.*;
import java.util.stream.Stream;
import java.util.*;
import java.time.format.DateTimeFormatter;
import java.time.Instant;
import java.time.ZoneId;

public class Step1 {
	public static void main(String[] args) throws IOException  {
        File dir=new File(".");
        System.out.println("当前目录 "+dir.getCanonicalPath()+" 的文件列表如下:");
        //(1)----------编写代码实现文件列表功能-----------
        File[] files = dir.listFiles();
        if (files != null) {
            Stream.of(files)
                .sorted(Comparator.comparing(File::isDirectory).reversed())
                .forEach(file -> {
                    long lastModified = file.lastModified();
                    LocalDateTime dateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(lastModified), ZoneId.systemDefault());
                    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
                    String dateStr = formatter.format(dateTime);
                    if (file.isDirectory()) {
                        System.out.printf("%s  <DIR>         %s%n", dateStr, file.getName());
                    } else {
                        System.out.printf("%s  %12d  %s%n", dateStr, file.length(), file.getName());
                    }
                });
        }
        
		File hello = new File("./Hello.txt");
		System.out.println("\n文件 "+hello.getCanonicalPath()+" 的内容如下:");
        //(2)----------显示文件内容-----------
        System.out.print(new String(Files.readAllBytes(hello.toPath())));
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值