Java实验创建一个记事本管理器。要求如下:创建一个记事本管理器。要求如下:① 从键盘上输入1,在当前目录下创建文件iotest6.txt.②从键盘上输入2,将E盘iotest2.txt复制iotest3.txt.③ 从键盘上输入3,修改E盘iotest3.txt文件的内容为”修改文件3内容“.从键盘上输入4,统计当前目录下文件的个数,并输出每个文件的文件名,大小,最近修改时间。,统计当前目录下文件的个数,并输出每个文件的文件名,大小,最近修改时间。
时间: 2024-02-09 19:10:42 浏览: 62
以下是 Java 代码实现记事本管理器的要求:
```java
import java.io.*;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class NotepadManager {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请选择操作:1. 创建文件;2. 复制文件;3. 修改文件内容;4. 统计文件信息;0. 退出");
int option = scanner.nextInt();
switch (option) {
case 1:
createFile();
break;
case 2:
copyFile();
break;
case 3:
modifyFile();
break;
case 4:
listFiles();
break;
case 0:
return;
default:
System.out.println("无效操作,请重新输入");
break;
}
}
}
// 创建文件
public static void createFile() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要创建的文件名(包括后缀):");
String fileName = scanner.nextLine();
try {
File file = new File(fileName);
if (file.createNewFile()) {
System.out.println("文件创建成功");
} else {
System.out.println("文件已经存在");
}
} catch (IOException e) {
System.out.println("创建文件失败:" + e.getMessage());
}
}
// 复制文件
public static void copyFile() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要复制的文件名(包括后缀):");
String srcFileName = scanner.nextLine();
System.out.println("请输入目标文件名(包括后缀):");
String destFileName = scanner.nextLine();
Path srcPath = Paths.get(srcFileName);
Path destPath = Paths.get(destFileName);
try {
Files.copy(srcPath, destPath, StandardCopyOption.REPLACE_EXISTING);
System.out.println("文件复制成功");
} catch (IOException e) {
System.out.println("复制文件失败:" + e.getMessage());
}
}
// 修改文件内容
public static void modifyFile() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要修改的文件名(包括后缀):");
String fileName = scanner.nextLine();
try {
RandomAccessFile raf = new RandomAccessFile(fileName, "rw");
long length = raf.length();
raf.seek(length);
raf.write("修改文件内容".getBytes());
raf.close();
System.out.println("文件内容修改成功");
} catch (IOException e) {
System.out.println("修改文件内容失败:" + e.getMessage());
}
}
// 统计文件信息
public static void listFiles() {
File dir = new File(".");
File[] files = dir.listFiles();
System.out.println("当前目录下共有 " + files.length + " 个文件:");
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (File file : files) {
try {
BasicFileAttributes attributes = Files.readAttributes(file.toPath(), BasicFileAttributes.class);
String lastModifiedTime = dateFormat.format(new Date(attributes.lastModifiedTime().toMillis()));
System.out.println("文件名:" + file.getName() + ",大小:" + file.length() + "B,最近修改时间:" + lastModifiedTime);
} catch (IOException e) {
System.out.println("读取文件属性失败:" + e.getMessage());
}
}
}
}
```
注意在执行操作 2 和操作 3 时,需要在程序所在目录下准备好要复制或修改的文件。
阅读全文