아하
생활

생활꿀팁

잘생긴가오리165
잘생긴가오리165

이코드에서 이름으로 전화번호 찾기 추가, 이름이없을때구문추가 하는 추가 코딩좀알려주세요 ㅠㅠ

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.Scanner;

public class HandPhone1 {

static String fname = "C:\\temp\\juso.txt";

static class address{

String name;

String age;

String phone;

address(String s1, String s2, String s3){

this.name = s1;

this.age = s2;

this.phone = s3;

}

}

public static void main (String[] args) throws IOException{

Scanner sc = new Scanner(System.in);

String select = "";

System.out.printf(" \n ### 친구 연락처 관리 ### \n");

while(select !="5") {

print_menu();

select = sc.next();

switch (select) {

case "1":

view_juso();

break;

case "2":

add_juso();

break;

case "3":

delete_juso();

break;

case "4":

return;

default:

System.out.printf("\n 잘못 입력했어요. 다시 선택하세요.\n");

}

}

}

//처음에 사용자의 선택을 위한 메뉴 출력

static void print_menu() {

System.out.printf("\n");

System.out.printf("1. 연락처 출력 \n");

System.out.printf("2. 연락처 등록 \n");

System.out.printf("3. 연락처 삭제 \n");

System.out.printf("4. 이름으로 연락처 찾기 \n");

System.out.printf("5. 끝내기 \n");

}

// 연락처 파일에서 기존 입력된 내용을 읽어서 출력

static void view_juso() throws IOException {

String str = "";

//처음에 fname 파일이 없으면 빈 파일 생성

File f = new File(fname);

if (!f.exists()) {

BufferedWriter bw = new BufferedWriter(new FileWriter(fname));

bw.close();

}

BufferedReader br = new BufferedReader(new FileReader(fname));

int i;

//기존의 연락처를 모두 읽어서 출력

for(i = 1;;i++) //i는 계속 1식 증가하는 무한 루프

{

if(!br.ready()) //파일을 읽을 수 없으면

break;

else {

str = br.readLine();

System.out.printf("%2d: %s\n", i, str);

}

}

//i 가 1이면 실제 파일에는 내용이 없음

if (i == 1)

System.out.printf("\n 연락처 파일에 전화번호가 하나도 없어요. \n");

br.close();

}

//친구 연락처를 추가

static void add_juso() throws IOException {

Scanner sc = new Scanner(System.in);

address adr = new address("","","");

String wstr = "";

//파일을 추가 모드로 열기

BufferedWriter bw = new BufferedWriter(new FileWriter(fname,true));

System.out.printf("이름을 입력 ==>");

adr.name = sc.nextLine();

System.out.printf("나이를 입력 ==>");

adr.age = sc.nextLine();

System.out.printf("전화번호를 입력 ==>");

adr.phone = sc.nextLine();

//입력된 3개의 값을 하나의 문자열로 만듦

wstr = adr.name +"\t" + adr.age + "\t" + adr.phone;

bw.write(wstr); //파일에 문자열 쓰기

bw.newLine();

bw.close();

}

//연락처 파일에서 선택한 연락처를 제거

static void delete_juso() throws IOException {

Scanner sc = new Scanner(System.in);

//연락처 파일의 내용 전체를 저장하기 위한 문자열 배열

String[] read_str = new String[50]; //최대 연락처 개수를 50개로 가정

String str = "";

int del_line, i, count = 0;

BufferedReader br = new BufferedReader(new FileReader(fname));

//연락처 파일이 없으면 돌아간다.

if (!br.ready()) {

System.out.printf("\n!! 연락처 파일이 없습니다. !!\n");

return;

}

System.out.printf("\n삭제할 행 번호는 ?");

del_line = sc.nextInt();

for (i = 0; i < 50; i++) //파일에 있는 동안에 수행, 단 최대 50개

{

if((str = br.readLine()) == null)

break;

if (i + 1 != del_line) //삭제하는 행이 아니라면 추가

{

read_str[count] = str;

count++;

}else

System.out.printf("%d 행이 삭제되었습니다. \n" ,del_line);

}

br.close();

//파일을 쓰기 모드로 열고 새로운 내용을 쓴다.

BufferedWriter bw = new BufferedWriter(new FileWriter(fname));

for (i = 0; i < count; i++) {

bw.write(read_str[i]);

bw.newLine();

}

bw.close();

}

}

55글자 더 채워주세요.
아직 답변이 없어요.