问题陈述
编写一个命令行工具,以文件路径为输入,打印文件的行数、字数、字符数、文件所有者的用户标识、文件所有者的组标识和最后修改时间UNIX
时间戳格式的文件。请注意,单词被标识为由空格或换行符与下一个字符序列分隔的字符序列。换行符也计入文件中的字符数。它必须用java编写。
我的代码:
try {
File f = new File("src/test.txt");
BufferedReader br = new BufferedReader(new FileReader(f));
String line = br.readLine();
int lines = 0, words = 0, chars = 0;
while (line != null) {
lines++;
for(int i = 0; i < line.length(); i++) {
if(line.charAt(i)==' ') {
words++;
}
}
chars += line.length();
line = br.readLine();
words++;
}
Path path = Paths.get("src/test.txt");
long d2 = Files.getLastModifiedTime(path, LinkOption.NOFOLLOW_LINKS).toMillis();
int uid = (Integer)Files.getAttribute(path, "unix:uid");
System.out.println(lines);
System.out.println(words);
System.out.println(chars);
System.out.println(uid);
System.out.println(uid);
System.out.println(d2);
}
catch(Exception e) {
e.printStackTrace();
}
我面临的问题是如何找出所有者的用户 ID 和组 ID。使用上述代码时出现运行时错误
java.lang.UnsupportedOperationException: View 'unix' not available
at sun.nio.fs.AbstractFileSystemProvider.readAttributes(Unknown Source)
at java.nio.file.Files.readAttributes(Unknown Source)
at java.nio.file.Files.getAttribute(Unknown Source)
at Demo.main(Demo.java:31)
同样在完成我的代码后,我想提交它,但是当我提交我的代码时,我得到一个编译时错误:
import java.nio.file cannot be resolved
同样对于属于同一包的其他人也是如此,所以我还想知道是否有任何其他方法可以在我的代码被接受的情况下获取这些属性?