728x90
🌥️🌥️🌥️🌥️🌥️ 영어 단어장 🌥️🌥️🌥️🌥️🌥️
print : 지금까지 등록한 영어단어가 출력됩니다.
find : 영어단어를 검색할 수 있습니다.
save : 파일에 저장합니다.
exit : 프로그램을 종료합니다.
Word 클래스
public class Word {
private String eng;
private String kor;
private int lev;
private String wdate;
public Word(String eng, String kor, int lev, String wdate) {
this.eng = eng;
this.kor = kor;
this.lev = lev;
this.wdate = wdate;
}
public String getEng() {
return eng;
}
public void setEng(String eng) {
this.eng = eng;
}
public String getKor() {
return kor;
}
public void setKor(String kor) {
this.kor = kor;
}
public int getLev() {
return lev;
}
public void setLev(int lev) {
this.lev = lev;
}
public String getWdate() {
return wdate;
}
public void setWdate(String wdate) {
this.wdate = wdate;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(eng).append(", ").append(kor).append(", ")
.append(lev).append(", ").append(wdate);
return sb.toString();
}
}
메소드 모아놓은 WordController 클래스
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;
public class WordController {
private ArrayList<Word> list;
public ArrayList<Word> getList() {
return list;
}
public void setList(ArrayList<Word> list) {
this.list = list;
}
public void insert(String eng) {
int lev;
String kor, wdate;
Word w;
Scanner sc = new Scanner(System.in);
System.out.print("뜻을 입력하세요 : ");
kor = sc.next();
System.out.print("레벨을 입력하세요 : ");
lev = sc.nextInt();
System.out.print("등록일자를 입력하세요 : ");
wdate = sc.next();
w = new Word(eng, kor, lev, wdate);
list.add(w);
}
public void list() {
for(int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
public boolean find() {
Scanner sc = new Scanner(System.in);
boolean isFind = false;
System.out.print("찾는 단어를 입력하세요 : ");
String find = sc.next();
for(int i = 0; i < list.size(); i++) {
if (list.get(i).getEng().equals(find)) {
System.out.println(list.get(i));
isFind = true;
}
}
return isFind;
}
public void save(String file) {
try {
PrintWriter pw = new PrintWriter(new FileOutputStream(file));
for(Word w : list) {
pw.println(w);
}
System.out.println("저장되었습니다.");
pw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void read(String file) { // 프로그램 시작 시 file에 저장되어 있는 단어 가져올 메소드
Scanner sc = null;
String temp;
String[] arr;
Word w;
try {
sc = new Scanner(new FileInputStream(file));
while (sc.hasNextLine()) {
temp = sc.nextLine(); // 파일 텍스트 한줄씩 temp에 저장
arr = temp.split(", "); // ", "를 기준으로 나눠서 배열에 저장
w = new Word(arr[0], arr[1], Integer.parseInt(arr[2]), arr[3]); // Word 타입 객체 생성
list.add(w); // ArrayList list에 추가
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
실행 클래스
import java.util.ArrayList;
import java.util.Scanner;
public class Main3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Word w;
WordController wordController = new WordController();
wordController.setList(new ArrayList<Word>());
String file = "wordbook.txt";
String eng;
System.out.println("🌥️🌥️🌥️🌥️🌥️ 영어 단어장 🌥️🌥️🌥️🌥️🌥️");
System.out.println("print : 지금까지 등록한 영어단어가 출력됩니다.");
System.out.println("find : 영어단어를 검색할 수 있습니다.");
System.out.println("save : 파일에 저장합니다.");
System.out.println("exit : 프로그램을 종료합니다.");
wordController.read(file); // 프로그램 시작 시 file에 저장되어 있는 단어 가져올 메소드
while (true) {
System.out.print("영어단어 또는 메뉴를 입력하세요 : ");
eng = sc.next();
if(eng.equals("exit")) break;
switch (eng) {
case "print" :
wordController.list();
break;
case "find" :
if (!wordController.find()) {
System.out.println("찾는 단어가 없습니다.");
}
break;
case "save" :
wordController.save(file);
break;
default:
wordController.insert(eng);
}
}
}
}
실행결과
728x90
'Java' 카테고리의 다른 글
[Java] intelliJ MySql 연동 (0) | 2022.04.21 |
---|---|
[Java] 중첩 클래스 (0) | 2022.04.19 |
[Java] 파일 클래스(StringBuilder) (0) | 2022.04.18 |
[Java] 파일 클래스 예제1 (파일 읽어와서 출력하기) (0) | 2022.04.18 |
[Java] 파일 클래스 (0) | 2022.04.18 |