import java.io.*;
import java.util.Scanner;
public class SimpleNotepad {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请输入指令(new-新建文件,open-打开文件,edit-修改文件,exit-退出):");
String command = scanner.nextLine();
switch (command.toLowerCase()) {
case "new":
createNewFile(scanner);
break;
case "open":
openFile(scanner);
break;
case "edit":
editFile(scanner);
break;
case "exit":
System.out.println("程序已退出。");
System.exit(0);
default:
System.out.println("无效的指令,请重新输入。");
}
}
}
private static void createNewFile(Scanner scanner) {
System.out.println("请输入新文件的名称:");
String fileName = scanner.nextLine();
try (BufferedWriter writer = new BufferedWriter(new FileWriter(fileName))) {
System.out.println("新文件已创建,请开始输入内容。输入完毕后,输入 ':q' 保存并退出编辑。");
while (true) {
String line = scanner.nextLine();
if (line.equals(":q")) {
System.out.println("文件已保存。");
break;
}
writer.write(line);
writer.newLine();
}
} catch (IOException e) {
System.out.println("创建文件时出现错误:" + e.getMessage());
}
}
private static void openFile(Scanner scanner) {
System.out.println("请输入要打开的文件名称:");
String fileName = scanner.nextLine();
try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
System.out.println("文件内容:");
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
System.out.println("打开文件时出现错误:" + e.getMessage());
}
}
private static void editFile(Scanner scanner) {
System.out.println("请输入要编辑的文件名称:");
String fileName = scanner.nextLine();
try (BufferedWriter writer = new BufferedWriter(new FileWriter(fileName, true))) {
System.out.println("请输入要添加到文件的内容。输入完毕后,输入 ':q' 保存并退出编辑。");
while (true) {
String line = scanner.nextLine();
if (line.equals(":q")) {
System.out.println("文件已保存。");
break;
}
writer.write(line);
writer.newLine();
}
} catch (IOException e) {
System.out.println("编辑文件时出现错误:" + e.getMessage());
}
}
}
设计一个模拟记事本的程序,要求在控制台输入指令,可以实现本地新建文件、打开文件和修改文件等功能。
原创
©著作权归作者所有:来自51CTO博客作者lizhao1688的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:面向对象设置类的基本属性
下一篇:取火柴

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
手写一个拖拽文件功能
手写一个拖拽文件功能
Nodejs JavaScript