[Java] word.txt 파일로 출력할 수 있는 단어장 만들기개발자가 되기까지 (2023.08.16~2024.04.15)/[Basic] Java2023. 11. 24. 20:22
Table of Contents
<문제>
word.txt 파일로 출력할 수 있는 단어장 만들기 |
<조건> Word class : 단어 등록 클래스 - word, mean WordMain class - menu 1. 단어 등록 2. 단어 검색 3. 단어 수정 4. 단어장 출력 5. txt 파일로 출력 6. 종료 WordManager class - ArrayList<Word> |
<방법>
public class Word<K, V> {
private K word;
private V mean;
public Word() {}
public Word(K word, V mean) {
this.word = word;
this.mean = mean;
}
public K getWord() {
return word;
}
public void setWord(K word) {
this.word = word;
}
public V getMean() {
return mean;
}
public void setMean(V mean) {
this.mean = mean;
}
@Override
public String toString() {
return word + " : " + mean;
}
}
import java.io.IOException;
import java.util.Scanner;
public class WordMain {
public static void main(String[] args) throws IOException {
Scanner scan = new Scanner(System.in);
WordManager wm = new WordManager();
int menu = -1;
do {
System.out.println("1.단어등록 | 2. 단어검색 | 3. 단어수정 |"
+ "4. 단어출력 | 5.파일로 출력 | 6. 종료");
System.out.print("menu >> ");
menu = scan.nextInt();
switch(menu) {
case 1 : wm.insert(scan);
break;
case 2 : wm.search(scan);
break;
case 3 : wm.modify(scan);
break;
case 4 : wm.print(scan);
break;
case 5 : wm.textFile();
break;
case 6 : System.out.println("단어장 종료");
break;
default : System.out.println("잘못된 입력입니다.");
break;
}
} while (menu != 6);
}
}
package Step2_word;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class WordManager {
List<Word<String, String>> list = new ArrayList<>();
public WordManager() {
addWord();
}
public void addWord() {
// 기본 단어
list.add(new Word("hola", "안녕하세요"));
list.add(new Word("gracias", "감사합니다"));
list.add(new Word("beber", "마시다"));
}
// 등록
public void insert(Scanner scan) {
System.out.print("입력 단어 개수 > ");
int num = scan.nextInt();
for(int i =1; i <= num; i++) {
System.out.print("단어 > ");
String word = scan.next();
System.out.print("의미 > ");
String mean = scan.next();
list.add(new Word(word, mean));
}
System.out.println("--단어 [" + num + "]개 등록완료--");
System.out.println();
}
// 검색
public void search(Scanner scan) {
System.out.print("찾는단어 > ");
String word = scan.next();
for(Word tmp : list) {
if(tmp.getWord().equals(word)) {
System.out.println(tmp);
return;
}
}
System.out.println("찾는 단어가 없습니다.");
}
// 수정
public void modify(Scanner scan) {
System.out.print("의미를 수정할 단어 > ");
String word = scan.next();
for(int i = 0; i < list.size(); i++) {
if(list.get(i).getWord().equals(word)) {
System.out.print("수정할 의미 > ");
String mean = scan.next();
Word w = new Word(word, mean);
list.set(i, w);
return;
}
}
System.out.println("찾는 단어가 없습니다.");
}
// 출력
public void print(Scanner scan) {
for (Word tmp : list) {
System.out.println(tmp);
}
}
// word.txt로 만들기
public void textFile() throws IOException {
FileWriter fw = new FileWriter("word.txt");
BufferedWriter bw = new BufferedWriter(fw);
StringBuffer sb = new StringBuffer();
String data = "";
int idx = 0;
while(idx < list.size()) {
sb.append(list.get(idx).toString());
sb.append("\r\n"); // 줄바꿈
idx++;
}
data = sb.toString();
System.out.println(data);
fw.write(data);
fw.close();
bw.close();
}
}
[Java] word.txt 파일로 출력할 수 있는 단어장 만들기
(다음 게시물 예고편)
[Java] 게시판 만들기
728x90
@rlozlr :: 얼렁뚱땅 개발자
얼렁뚱땅 주니어 개발자
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!