java创建一个可以增删改查的记事本程序
时间: 2023-05-24 08:03:30 浏览: 60
A:
思路:
1. 创建一个文本文件,用于存储记事本中记录的内容。
2. 设计菜单,允许用户选择要执行的操作。
3. 根据用户输入的操作选择,执行相应的方法。
4. 编写增删改查的具体逻辑。
代码实现:
```java
import java.util.Scanner;
import java.io.*;
public class NotePad {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String fileName = "note.txt";
while (true) {
//1.显示菜单
System.out.println("Menu: ");
System.out.println("1.添加记录");
System.out.println("2.删除记录");
System.out.println("3.修改记录");
System.out.println("4.查找记录");
System.out.println("5.退出");
//2.让用户选择
System.out.print("请输入要执行的操作:");
int choice = sc.nextInt();
switch (choice) {
case 1:
addRecord(fileName);
break;
case 2:
deleteRecord(fileName);
break;
case 3:
modifyRecord(fileName);
break;
case 4:
searchRecord(fileName);
break;
case 5:
System.exit(0);//退出程序
default:
System.out.println("输入有误,请重新输入!");
break;
}
}
}
//添加记录
public static void addRecord(String fileName) {
Scanner sc = new Scanner(System.in);
BufferedWriter bw = null;
try {
File file = new File(fileName);
bw = new BufferedWriter(new FileWriter(file, true));
System.out.print("请输入要添加的内容:");
String content = sc.nextLine();
bw.write(content);
bw.newLine();//换行
bw.flush();
System.out.println("添加成功!");
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bw != null) {
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
//删除记录
public static void deleteRecord(String fileName) {
Scanner sc = new Scanner(System.in);
BufferedReader br = null;
BufferedWriter bw = null;
try {
File file = new File(fileName);
File tempFile = new File("temp.txt");
br = new BufferedReader(new FileReader(file));
bw = new BufferedWriter(new FileWriter(tempFile));
System.out.print("请输入要删除的内容:");
String content = sc.nextLine();
String line;
while ((line = br.readLine()) != null) {
if (line.equals(content)) {
System.out.println("删除成功!");
continue;
}
bw.write(line);
bw.newLine();
}
file.delete();
tempFile.renameTo(file);//重命名
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null) {
br.close();
}
if (bw != null) {
bw.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
//修改记录
public static void modifyRecord(String fileName) {
Scanner sc = new Scanner(System.in);
BufferedReader br = null;
BufferedWriter bw = null;
try {
File file = new File(fileName);
File tempFile = new File("temp.txt");
br = new BufferedReader(new FileReader(file));
bw = new BufferedWriter(new FileWriter(tempFile));
System.out.print("请输入要修改的内容:");
String oldContent = sc.nextLine();
System.out.print("请输入新内容:");
String newContent = sc.nextLine();
String line;
while ((line = br.readLine()) != null) {
if (line.equals(oldContent)) {
bw.write(newContent);
} else {
bw.write(line);
}
bw.newLine();
}
file.delete();
tempFile.renameTo(file);//重命名
System.out.println("修改成功!");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null) {
br.close();
}
if (bw != null) {
bw.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
//查找记录
public static void searchRecord(String fileName) {
Scanner sc = new Scanner(System.in);
BufferedReader br = null;
try {
File file = new File(fileName);
br = new BufferedReader(new FileReader(file));
System.out.print("请输入要查找的内容:");
String content = sc.nextLine();
String line;
boolean flag = false;
while ((line = br.readLine()) != null) {
if (line.equals(content)) {
System.out.println("找到了这条记录:" + line);
flag = true;
}
}
if (flag == false) {
System.out.println("没有找到这条记录!");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null) {
br.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```