将 semester 文件输出的最后更改日期信息,写入主目录下的 last-modified.txt 的文件中
时间: 2024-02-05 19:12:08 浏览: 23
你可以使用以下命令将 semester 文件的最后更改日期信息写入到主目录下的 last-modified.txt 文件中:
```bash
stat semester | grep "Modify:" | cut -d ' ' -f2- > ~/last-modified.txt
```
该命令使用 stat 命令获取 semester 文件的相关信息,然后使用 grep 命令匹配 Modify 字符串,使用 cut 命令提取出日期信息,并将其重定向到主目录下的 last-modified.txt 文件中。
相关问题
将 semester 文件输出的最后更改的时间信息,写入主目录下的 last-modified.txt 的文件中
可以使用 `stat` 命令获取文件的最后修改时间,并将其写入 `last-modified.txt` 文件中。具体操作步骤如下:
1. 打开终端,进入主目录:
```
cd ~
```
2. 使用 `stat` 命令获取 `semester` 文件的最后修改时间,并将其输出到 `last-modified.txt` 文件中:
```
stat -c %y semester > last-modified.txt
```
其中,`-c %y` 参数表示只输出最后修改时间,不输出其他信息。
3. 查看 `last-modified.txt` 文件内容,确认最后修改时间已经写入成功:
```
cat last-modified.txt
```
输出的内容应该类似于:
```
2021-08-01 14:30:00.000000000 +0800
```
public void saveDataToFile() { try { String courseFilePath = "data/courses.txt"; // 替换为保存 course 数据的文本文件路径 String numberFilePath = "data/credits.txt"; // 替换为保存 number 数据的文本文件路径 //String scoresFilePath = "data/scores/file.txt"; // 替换为保存 scores 数据的文本文件路径 String semesterFilePath = "data/semesters.txt"; // 替换为保存 semester 数据的文本文件路径 String typeFilePath = "data/types.txt"; // 替换为保存 type 数据的文本文件路径 saveListToFile(course, courseFilePath); saveListToFile(number, numberFilePath); Files.write(Paths.get("data/scores.txt"), scores.stream().map(String::valueOf).collect(Collectors.toList()), StandardCharsets.UTF_8); saveListToFile(semester, semesterFilePath); saveListToFile(type, typeFilePath); JOptionPane.showMessageDialog(null, "Data saved to files."); } catch (IOException e) { JOptionPane.showMessageDialog(null, "An error occurred while saving data to file: "); } }代码经常返回异常,请优化这个代码,使数据可以正确保存到txt文件中
可能的优化如下:
1. 检查文件路径是否存在,如果不存在则创建它们。
2. 使用 try-with-resources 语句来自动关闭文件流,防止资源泄漏。
3. 使用 BufferedWriter 来写入数据,这将提高写入大量数据时的效率。
4. 将异常信息打印到控制台上,以便更容易地调试问题。
下面是优化后的代码:
```
public void saveDataToFile() {
try {
String courseFilePath = "data/courses.txt";
String numberFilePath = "data/credits.txt";
String scoresFilePath = "data/scores.txt";
String semesterFilePath = "data/semesters.txt";
String typeFilePath = "data/types.txt";
// Check if directories exist, create them if not.
Files.createDirectories(Paths.get("data"));
// Write course data to file.
try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(courseFilePath))) {
for (String course : course) {
writer.write(course);
writer.newLine();
}
}
// Write number data to file.
try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(numberFilePath))) {
for (String number : number) {
writer.write(number);
writer.newLine();
}
}
// Write scores data to file.
Files.write(Paths.get(scoresFilePath), scores.stream().map(String::valueOf).collect(Collectors.toList()), StandardCharsets.UTF_8);
// Write semester data to file.
try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(semesterFilePath))) {
for (String semester : semester) {
writer.write(semester);
writer.newLine();
}
}
// Write type data to file.
try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(typeFilePath))) {
for (String type : type) {
writer.write(type);
writer.newLine();
}
}
JOptionPane.showMessageDialog(null, "Data saved to files.");
} catch (IOException e) {
System.err.println("An error occurred while saving data to file: " + e.getMessage());
JOptionPane.showMessageDialog(null, "An error occurred while saving data to file.");
}
}
```