试利用流操作进行编程,要求从键盘输入一个文本文件的名字,在屏幕上显示该文本文件内容及文件的路径、修改时间、大小、长度、可读性和可修改性等属性。文件名通过命令行以参数方式输入。程序需要判断参数所提供文件的存在性。
时间: 2024-03-09 21:46:49 浏览: 79
以下是使用Java 8的流操作实现的代码:
```java
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.FileTime;
public class FileAttributes {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("请提供文件名作为参数");
return;
}
Path path = Paths.get(args[0]);
if (!Files.exists(path)) {
System.out.println("文件不存在");
return;
}
try {
Files.lines(path)
.forEach(System.out::println);
System.out.println("文件路径:" + path.toAbsolutePath());
System.out.println("文件大小:" + Files.size(path) + "字节");
System.out.println("文件长度:" + Files.lines(path).count() + "行");
System.out.println("文件修改时间:" + Files.getLastModifiedTime(path));
System.out.println("文件可读性:" + Files.isReadable(path));
System.out.println("文件可修改性:" + Files.isWritable(path));
} catch (IOException e) {
System.out.println("读取文件出错:" + e.getMessage());
}
}
}
```
该程序首先检查是否提供了文件名作为命令行参数,如果没有则输出错误信息并退出。然后使用参数构造一个`Path`对象,并使用`Files.exists()`方法检查该文件是否存在。如果文件不存在,程序输出错误信息并退出。如果文件存在,程序使用`Files.lines()`方法读取文件内容并输出到屏幕。然后使用`Path`对象的方法获取文件的路径、大小、长度、修改时间以及可读写性,并输出到屏幕。如果读取文件时出现错误,程序将输出错误信息。
阅读全文