具体功能介绍:
若不存在储存信息的文本文档首先会创建文档,若存在则判断是否为空,若为空则输出电话本为空,若不为空则加载文档内的数据。
加载完成后,用户可以根据输入0~6选择具体功能完成相关操作。
具体代码如下:
在一个Java项目telBook下建两个包分别为main包和netty
netty包中含有类TelInfo
package netty;
public class TelInfo {
private String name;
private String num;
public TelInfo(String name, String num) {
super();
this.name = name;
this.num = num;
}
public TelInfo() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
}
main包中含有类TelOperator
package main;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import netty.TelInfo;
public class TelOperator {
boolean status=true;
Scanner sc = new Scanner (System.in);
List<TelInfo> infolist = new ArrayList<TelInfo>();
public static void main(String[] args) throws IOException{
TelOperator op = new TelOperator();
File file = new File("d:/telBooks.txt");
if(!file.exists()) {
file.createNewFile();
}else {
op.readBook();
}
op.operator();
}
private void readBook() {
try {
FileReader fr = new FileReader("d:/telBooks.txt");
if(fr.read()==-1) {
System.out.println("电话本为空,可通过主界面进行相关操作...");
}else {
BufferedReader br = new BufferedReader(fr);
String line;
while((line=br.readLine())!=null) {
String[] strs = line.split(",");
TelInfo info = new TelInfo(strs[0], strs[1]);
infolist.add(info);
}
br.close();
fr.close();
System.out.println("数据已加载完成...");
}
} catch (IOException e) {
e.printStackTrace();
}
}
public void operator(){
while(status) {
System.out.println("---------------------电话本---------------------");
System.out.println("1.新增\t2.删除\t3.修改\t4.查询\t5.查询所有\t6.保存\t0.退出\t");
System.out.println("---------------------电话本---------------------");
System.out.println("请输入数字选择功能:");
int falg = sc.nextInt();
switch (falg) {
case 1: {
//新增电话本方法
addTel();
break;
}
case 2: {
//删除电话本方法
delete();
break;
}
case 3: {
//修改电话本方法
updata();
break;
}
case 4: {
//查询电话本方法
find();
break;
}
case 5: {
findAll();
//查询所有电话本方法
break;
}
case 6: {
//保存电话本方法
saveBook();
break;
}
case 0: {
//退出电话本方法
sc.close();
status=false;
break;
}
default:
System.out.println("输出错误,请重新输入");
}
}
}
private void updata() {
System.out.println("请输入要修改的账户姓名:");
String name = sc.next();
System.out.println("输入修改后的号码:");
String num = sc.next();
for(TelInfo book:infolist) {
if(book.getName().equals(name)) {
book.setNum(num);
System.out.println("修改成功!");
}
}
}
private void find() {
System.out.println("输入想要查找的名字:");
String name = sc.next();
int i=0;
for(TelInfo info:infolist) {
if(info.getName().equals(name)) {
System.out.println("姓名:"+info.getName()+"\t电话号码:"+info.getNum());
i++;
}
}
if(i==0) {
System.out.println("未查询到");
}
}
private void delete() {
System.out.println("请输入要删除的联系人姓名:");
String dname = sc.next();
int i3=0;
for(int i =0;i<infolist.size();i++) {
TelInfo book = infolist.get(i);
if(book.getName().equals(dname)) {
infolist.remove(book);
System.out.println("删除成功!");
i3++;
}else {
continue;
}
}
if(i3==0) {
System.out.println("未查询到删除对象");
}
}
private void saveBook() {
try {
FileWriter fw=new FileWriter("d:/telBooks.txt");
BufferedWriter out = new BufferedWriter(fw);
for(TelInfo info:infolist) {
out.write(info.getName()+","+info.getNum());
out.write("\r\n");
}
out.flush();//将缓冲区数据批量压入文件中
out.close();
System.out.println("保存成功!");
}catch (IOException e) {
e.printStackTrace();
}
}
private void addTel() {
System.out.println("请输入姓名:");
String name = sc.next();
System.out.println("请输入电话号码:");
String num = sc.next();
TelInfo info = new TelInfo(name, num);
int ii=0;
for(TelInfo info1:infolist) {
if(info1.getName().equals(name)) {
ii++;
System.out.println("输入姓名已存在,请重新输入,如想替换请选择修改");
break;
}
}
if(ii==0) {
infolist.add(info);
System.out.println("姓名:"+info.getName()+"\t电话号码:"+info.getNum());
}
}
private void findAll() {
int i=0;
for(TelInfo info:infolist) {
i++;
System.out.println("姓名:"+info.getName()+"\t电话号码:"+info.getNum());
}
if(i==0) {
System.out.println("电话本为空");
}
}
}