본문 바로가기

웹 개발/Java

[Web_JAVA] 41

● 소프트웨어 디자인 설계 패턴

▶ MVC

1. M(Model)

- DB에서 조회된 결과 값을 담기 위한 변수들이 선언된 클래스

- 클래스명 뒤에 VO, DTO라는 문자를 붙여준다.

- VO(Value Object)

- DTO(Data Transfer Object)

 

 

2. V(View)

- 사용자에게 보여질 화면을 구성하는 부분

- Controller에 선언된 메소드를 사용하는 부분

 

 

3. C(Controller)

- DB에 접근할 수 있는 메소드들이 선언된 클래스

- 접근 후 결과 값이 있을 경우 Model 객체에 담은 후 처리

- 클래스명 뒤에 DAO라는 문자를 붙여준다.

- DAO(Data Access Object)

 

 


 

실습(파일 입출력)

- 문제

// food.txt 파일을 현재 경로에 생성하고,
// 파일 내용은 족발, 보쌈, 짜장면, 탕수육 네 가지 음식으로 작성한다.
// 각 음식은 줄바꿈 후 다음 음식을 넣도록 한다.
// 반복문을 사용해서 데이터를 출력한다.
// 작성한 내용을 콘솔에 출력한다.

 

 

 

1. food.txt 파일 생성 및 내용 작성

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FileTask { 
	public static void main(String[] args) throws IOException{
		
		String[] food = {"족발", "보쌈", "짜장면", "탕수육"};
		BufferedWriter bw = new BufferedWriter(new FileWriter("food.txt"));

		for (int i = 0; i < food.length; i++) {
			bw.write(food[i] + "\n");
		}
		
		bw.close();
		
	}
}

 

결과

 

 

 

2. 작성한 내용 콘솔에 출력

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

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

		BufferedReader br = null;
		
		try {
			br = new BufferedReader(new FileReader("food.txt"));
			String line = null;
			
			while((line = br.readLine()) != null) {
				System.out.println(line);
			}
			br.close();
			
		} catch (Exception e) {
			System.out.println("해당 경로에 파일이 없습니다.");
		}
		
	}
}

 

결과

 

 

 

 

※ food.txt file 삭제

File f = new File("food.txt");
		
if(f.exists()) {
	f.delete();
}

 

 

 

 

실습(파일 입출력)

- 문제

// fish.txt 파일을 현재 경로에 생성하고,
// 파일 내용은 도미, 고등어, 갈치, 광어 네 가지 생선으로 작성한다.
// 각 음식은 줄바꿈 후 다음 음식을 넣도록 한다.
// 반복문을 사용해서 데이터 출력/수정/삭제를 진행한다.

 

 

 

1. fish.txt 파일 생성 및 내용 작성

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

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

		String[] fish = {"도미", "고등어", "갈치", "광어"};
		BufferedWriter bw = new BufferedWriter(new FileWriter("fish.txt"));
		
		for (int i = 0; i < fish.length; i++) {
			bw.write(fish[i] + "\n");
		}
		
		bw.close();
		 
	}
}

 

결과

 

 

2. 데이터 수정(고등어 -> 놀래미)

- 위의 코드의 main() 메소드에 이어서 작성

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

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

		......
		
		BufferedReader br = null;
		 
		try {
			br = new BufferedReader(new FileReader("fish.txt"));
			String line = null;
			String temp = "";  // 아래 코드에서 연결하기 때문에 ""로 초기화
			
			while((line = br.readLine()) != null) {
				if(line.equals("고등어")) {
					temp += "놀래미\n";
					continue;
				}
				temp += line + "\n";
			}
			
//			try {
//				a(수정하기)
//				b(덮어쓰기)
//			}
			// try문에 있는 a작업에 오류가 발생하면, b작업은 실행되지 않는다.
			// a가 문제 없이 진행되어야 b를 실행할 수 있다면 위와 같이 로직을 작성한다.
			// 고등어 검색 후 수정 부분에서 문제가 생긴다면, 기존 파일을 temp로 덮어쓰면 안되기 때문에
			// try문 안에서 temp로 덮어씌워 준다.
			
			// 덮어쓰기
			// 덮어쓰기하면 수정한 내용이 출력된다.
			BufferedWriter bw = new BufferedWriter(new FileWriter("fish.txt"));
			bw.write(temp);
			bw.close();
			
		} catch (FileNotFoundException e) {
			System.out.println("경로를 찾을 수 없습니다.");
		} finally {  // 오류 발생에 상관 없이 무조건 실행된다.
			if(br != null) {
				br.close();  // 열린 장치나 열린 파일을 닫을 때 사용한다.				
			}
		}

	}
}

 

결과

 

 

 

3. 데이터 삭제(갈치 삭제)

- 위의 코드의 main() 메소드에 이어서 작성

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

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

		......

		BufferedReader br = null;
		
		try {
			br = new BufferedReader(new FileReader("fish.txt"));
			String line = null;
			String temp = "";  // 아래 코드에서 연결하기 때문에 ""로 초기화
			
			while((line = br.readLine()) != null) {
				if(line.equals("갈치")) {
					continue;
				}
				temp += line + "\n";
			}
			
			BufferedWriter bw = new BufferedWriter(new FileWriter("fish.txt"));
			bw.write(temp);
			bw.close();
			
		} catch (FileNotFoundException e) {
			System.out.println("경로를 찾을 수 없습니다.");

		} finally {
			if(br != null) {
				br.close();  // 열린 장치나 열린 파일을 닫을 때 사용한다.				
			}
		}
		
	}
}

 

결과

 

 

 

'웹 개발 > Java' 카테고리의 다른 글

[Web_JAVA] 43  (0) 2022.03.29
[Web_JAVA] 42  (0) 2022.03.28
[Web_JAVA] 40  (0) 2022.03.26
[Web_JAVA] 39  (0) 2022.03.25
[Web_JAVA] 38  (0) 2022.03.24