package dao;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import data.FileProc;
import dto.HumanDto;
public class AddressDao {
Scanner sc = new Scanner(System.in);
private List<HumanDto> list = new ArrayList<HumanDto>();
private int count;
private FileProc fileProc = null; // composition(합성)
public AddressDao() {
fileProc = new FileProc("address");
fileload();
}
public void insert() {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("지인을 추가합니다");
System.out.print("이름 = ");
String name = sc.next();
System.out.print("나이 = ");
int age = sc.nextInt();
System.out.print("전화번호 = ");
String phone = sc.next();
System.out.print("주소 = ");
String address = "";
try {
address = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
System.out.print("메모 = ");
String memo = sc.next();
HumanDto dto = new HumanDto(name, age, phone, address, memo);
list.add(dto);
}
public void delete() {
System.out.print("삭제할 지인의 이름 = ");
String name = sc.next();
// 검색
int index = search(name);
if(index == -1) {
System.out.println("지인의 정보를 찾을 수 없습니다");
}
else {
// 삭제
list.remove(index);
System.out.println("지정한 지인을 삭제하였습니다");
}
}
public void select() { // 동명이인을 찾는다
// 검색
System.out.print("검색할 지인의 이름 = ");
String name = sc.next();
for (HumanDto h : list) {
if(name.equals(h.getName())) {
System.out.println(h.toString());
}
}
}
public void update() {
System.out.print("수정할 지인의 이름 = ");
String name = sc.next();
// 검색
int index = search(name);
if(index == -1) {
System.out.println("지인의 정보를 찾을 수 없습니다");
return;
}
// 수정
// phone
// address
System.out.println("데이터를 찾았습니다");
System.out.print("전화번호 = ");
String phone = sc.next();
System.out.print("주소 = ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String address = "";
try {
address = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
list.get(index).setPhone(phone);
list.get(index).setAddress(address);
System.out.println("정상적으로 수정되었습니다");
}
public int search(String name) {
int index = -1;
for (int i = 0; i < list.size(); i++) {
HumanDto h = list.get(i);
if(name.equals(h.getName())) {
index = i;
break;
}
}
return index;
}
public void allDataPrint() {
for (HumanDto humanDto : list) {
System.out.println(humanDto.toString());
}
}
public void filesave() {
String dataArr[] = new String[list.size()];
for (int i = 0; i < list.size(); i++) {
dataArr[i] = list.get(i).toString();
}
fileProc.write(dataArr);
}
public void fileload() {
String datas[] = fileProc.read();
for (int i = 0; i < datas.length; i++) {
String split[] = datas[i].split(":");
HumanDto h = new HumanDto( split[0],
Integer.parseInt(split[1]),
split[2],
split[3],
split[4] );
list.add(h);
}
}
}