AdressBook.java
链接: https://pan.baidu.com/s/1T_qtkjNCPkeRJKAeVPuSsw 密码: bepd
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
public class AdressBook {
public static void main(String []args) throws IOException{
while(true){
System.out.println(" 欢迎来到私人通讯录");
System.out.println("请选择你要执行的功能");
System.out.println("添加(1)");
System.out.println("删除(2)");
System.out.println("按照姓名查询(3)");
System.out.println("按照手机号查询(4)");
System.out.println("修改(5)");
System.out.println("按照字母顺序全部显示(6)");
System.out.println("退出(7)");
Scanner sc=new Scanner(System.in);
int x=sc.nextInt();
switch(x){
case 1:add();break;
case 2:delete();break;
case 3:demandName();break;
case 4:demandNumber();break;
case 5:modification();break;
case 6:display();break;
case 7:exit();break;
}
}
}
//将文件中的东西写入集合中
public static void readData( ArrayList<Person> array)
throws IOException {
// 创建输入缓冲流对象
BufferedReader br = new BufferedReader(new FileReader("person.txt"));
String line;
while ((line = br.readLine()) != null) {
String[] datas = line.split(",");
Person p = new Person();
p.setName(datas[0]);
p.setTp(datas[1]);
p.setAdress(datas[2]);
array.add(p);
}
br.close();
}
// 把集合中的数据写入文件
public static void writeData( ArrayList<Person> array)
throws IOException {
// 创建输出缓冲流对象
BufferedWriter bw = new BufferedWriter(new FileWriter("person.txt"));
for (int x = 0; x < array.size(); x++) {
Person p = array.get(x);
StringBuilder sb = new StringBuilder();
sb.append(p.getName()).append(",").append(p.getTp()).append(",").append(p.getAdress());
bw.write(sb.toString());
bw.newLine();
bw.flush();
}
bw.close();
}
//添加
public static void add() throws IOException{
//创建集合对象
ArrayList<Person> array = new ArrayList<Person>();
//从文件中把数据读取到集合中
readData(array);
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
String name;
while(true){
System.out.println("请输入姓名:");
name = sc.nextLine();
int x=-1;
for(int i=0; i<array.size(); i++) {
Person p = array.get(i);
if(p.getName().equals(name)) {
x= -2; //说明这个人名已经存有寸有手机号了
break;
}
}
if(x==-2) {
System.out.println("你输入的姓名已经有人用了,请重新输入");
}else {
break;
}
}
System.out.println("请输入手机号:");
String tp = sc.nextLine();
Person p = new Person();
System.out.println("请输入地址");
String adress=sc.nextLine();
p.setName(name);
p.setTp(tp);
p.setAdress(adress);
System.out.println(tp);
array.add(p);
//把集合中的数据重新写回到文件
writeData(array);
System.out.println("添加成功");
}
//删除
public static void delete() throws IOException{
ArrayList<Person> array = new ArrayList<Person>();
//从文件中把数据读取到集合中
readData(array);
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要删除的人的姓名");
String name=sc.nextLine();
int x=-1;
for(int i=0;i<array.size();i++){
Person p=array.get(i);
if(p.getName().equals(name)){
x=1;
System.out.println(x);
array.remove(i);
writeData(array);
System.out.println("删除成功");
break;
}
}
if(x==-1){
System.out.println("输入的姓名不存在");
}
}
//按照姓名查询
public static void demandName() throws IOException{
ArrayList<Person> array=new ArrayList<Person>();
readData(array);
Scanner sc= new Scanner(System.in);
System.out.println("请输入你要查看的的人的姓名:");
String name=sc.nextLine();
int x=-1;
for(int i=0;i<array.size();i++){
Person p=array.get(i);
if(p.getName().equals(name)){
x=1;
System.out.println("您要查看的人的姓名是:"+name+"手机号是:"+p.getTp()+"地址是:"+p.getAdress());
}
}
if(x==-1){
System.out.println("你要查看的人不存在");
}
}
//按照手机号查询
public static void demandNumber() throws IOException{
ArrayList<Person> array=new ArrayList<Person>();
readData(array);
Scanner sc= new Scanner(System.in);
System.out.println("请输入你要查看的的人的手机号:");
String tp=sc.nextLine();
int x=-1;
for(int i=0;i<array.size();i++){
Person p=array.get(i);
if(tp.equals(p.getTp())){
x=1;
System.out.println("您要查看的人的姓名是:"+p.getName()+"手机号是:"+p.getTp()+"地址是:"+p.getAdress());
}
}
if(x==-1){
System.out.println("你要查看的人不存在");
}
}
//修改
public static void modification()throws IOException{
ArrayList <Person> array=new ArrayList<Person>();
readData(array);
Scanner sc=new Scanner(System.in);
System.out.println("请输入你要修改的人的名字");
String name=sc.nextLine();
String tp = null;
String adress=null;
int x=-1;
for(int i=0;i<array.size();i++){
Person p=array.get(i);
if(p.getName().equals(name)){
tp=p.getTp();
adress=p.getAdress();
x=i;
break;
}
}
if(x==-1){
System.out.println("你输入的名字不存在");
}else{
Person p=new Person();
System.out.println("请问您是要修改名字(1)还是修改手机号(2)还是修改地址(3)或者全部修改(4)");
int y=sc.nextInt();
if(y==1){
Scanner sc1=new Scanner(System.in);
System.out.println("请输入名字:");
String name1=sc1.nextLine();
int h=-1;
for(int i=0;i<array.size();i++){
Person p2=array.get(i);
if(p2.getName().equals(name1)){
h=-2;
break;
}
}
if(h==-2){
System.out.println("这个名字已经存在");
}else{
p.setName(name1);
p.setTp(tp);
p.setAdress(adress);
array.set(x, p);
writeData(array);
System.out.println("修改成功");
}
}
if(y==2){
Scanner sc1=new Scanner(System.in);
System.out.println("请输入手机号");
String tp1=sc1.nextLine();
p.setName(name);
p.setAdress(adress);
p.setTp(tp1);
array.set(x, p);
writeData(array);
System.out.println("修改成功");
}
if(y==3){
Scanner sc1=new Scanner(System.in);
System.out.println("请输入地址");
String address1=sc1.nextLine();
p.setName(name);
p.setAdress(address1);
p.setTp(tp);
array.set(x, p);
writeData(array);
System.out.println("修改成功");
}
if(y==4){
//全部都改
Scanner sc1=new Scanner(System.in);
System.out.println("请输入名字");
String name1=sc1.nextLine();
int h=-1;
for(int i=0;i<array.size();i++){
Person p2=array.get(i);
if(p2.getName().equals(name1)){
h=-2;
break;
}
}
if(h==-2){
System.out.println("这个名字已经存在");
}else{
System.out.println("请输入手机号");
String tp1=sc1.nextLine();
System.out.println("请输入地址");
String address1=sc1.nextLine();
p.setName(name1);
p.setTp(tp1);
p.setAdress(address1);
array.set(x, p);
writeData(array);
System.out.println("修改成功");
}
}
}
}
//按照字母顺序全部显示
public static void display()throws IOException{
ArrayList<Person> array=new ArrayList<Person>();
readData(array);
System.out.println("姓名 手机号 地址");
for(int x=0;x<array.size();x++){
for(int j=0;j<(array.size()-x-1);j++){
Person p1=array.get(j);
Person p2=array.get(j+1);
String name1=p1.getName();
String name2=p2.getName();
if(name1.compareTo(name2)>0){
p1.setName(name2);
p2.setName(name1);
}
}
}
writeData(array);
ArrayList<Person> array1=new ArrayList<Person>();
readData(array1);
for(int i=0;i<array1.size();i++){
Person p=array1.get(i);
System.out.println(p.getName()+" "+" "+" "+" "+" "+" "+" "+p.getTp()+" "+" "+" "+" "+" "+" "+p.getAdress());
}
}
public static void exit()throws IOException{
System.out.println("谢谢使用");
System.exit(0);
}
}
PersonBook.java
public class Person {
//手机号
private String tp;
private String name;
private String adress;
public Person(){
}
public Person(String name,String tp,String adress){
this.tp=tp;
this.name=name;
this.adress=adress;
}
public String getTp() {
return tp;
}
public void setTp(String tp) {
this.tp = tp;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setAdress(String adress){
this.adress=adress;
}
public String getAdress(){
return adress;
}
}