본문 바로가기

웹 개발/Java

[Web_JAVA] 40

● 파일 입출력(Java Application 관점)

1. Writer(출력)

(1) BufferedWriter

- 버퍼를 사용한 출력 클래스

 

(2) FileWriter

- 전달한 경로의 파일을 출력하기 위한 목적으로 열어준다.

- 전달한 경로에 파일이 없다면 새롭게 만든 후 열어준다.

 

(3) File

- 전달한 경로에 있는 파일의 정보를 담는 타입

- 파일의 유무 검사, 파일 삭제 등

 

 

2. Reader(입력)

(1) BufferedReader

- 버퍼를 사용한 입력 클래스

 

(2) FileReader

- 전달한 경로의 파일을 출력하기 위한 목적으로 열어준다.

- 전달한 경로에 파일이 없다면 FileNotFoundException 예외가 발생한다.

 

(3) File

- 전달한 경로에 있는 파일의 정보를 담는 타입

- 파일의 유무 검사, 파일 삭제 등

 

 

※ 버퍼

- 임시 저장 공간

- flush() : 버퍼를 비워준다.

- close() : 자동으로 flush()가 되면서 닫힌다.

 

 

실습(Date)

- 현재 날짜 및 시간 출력 + 원하는 형식으로 변경 후 출력

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTest {
	public static void main(String[] args) {
		
		// 현재 날짜 
		Date today = new Date(System.currentTimeMillis());
		System.out.println(today);
		
		// SimpleDateFormat : 원하는 형식으로 변경하여 출력
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy년 MM월 dd일 HH:mm:ss");
		
		today.setYear(100); // 1900년부터 시작점이기 때문에 전달한 정수와 더하여 년도가 설정된다.
		today.setMonth(11); // 월은 0부터 시작한다.
		today.setDate(25);
		
		System.out.println(sdf.format(today));
		System.out.println(today.getDay()); // 0 = Sunday ,... 6 = Saturday

	}
}

 

결과
 

 

 

 

실습(Calendar)

1. format()

- getTime()을 사용하여 항상 Calendar 타입의 객체를 Date타입으로 변환한 뒤 사용해야 한다.

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class CalendarTest {
	public static void main(String[] args) {
		
		Calendar today = Calendar.getInstance();
		System.out.println(today);
		
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		
		System.out.println(sdf.format(today.getTime()));

	}
}

 

결과

 

 

 

2. set()

- 원하는 날짜 직접 입력

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class CalendarTest {
	public static void main(String[] args) {
		 
		Calendar today = Calendar.getInstance();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		
		today.set(1999, 11, 4); // Month는 0부터 시작한다.
		System.out.println(sdf.format(today.getTime()));

	}
}

 

결과

 

 

 

3. get()

- 원하는 값 가져오기

import java.text.SimpleDateFormat; 
import java.util.Calendar;

public class CalendarTest {
	public static void main(String[] args) {
		
		Calendar today = Calendar.getInstance();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		
		System.out.println(today.get(Calendar.YEAR));
		System.out.println(today.get(Calendar.MONTH) + 1);  // Month는 0부터 시작한다.

	}
}

 

결과

 

 

 

 

실습(파일 입출력)

1. 버퍼를 사용하여 파일 출력하기

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

public class FileTest{
	 
	// throws : 예외 던지기(일괄 처리)
	// 메소드 내에서 자주 발생하는 예외를 메소드를 사용하는 쪽에서 한 번에 예외처리를 하고자 사용한다.
	public static void main(String[] args) throws IOException{
		
		// true를 입력하지 않으면 default 값인 덮어쓰기가 된다.
		BufferedWriter bw = new BufferedWriter(new FileWriter(new File("test.txt"), true));
		bw.write("홍길동\n");
		bw.newLine();
		bw.close();
		
	}
}

 

결과

 

 

 

2. 전달한 경로에 파일이 없는 경우

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

public class FileTest{
	
	// throws : 예외 던지기(일괄 처리)
	// 메소드 내에서 자주 발생하는 예외를 메소드를 사용하는 쪽에서 한 번에 예외처리를 하고자 사용한다.
	public static void main(String[] args) throws IOException{
		
		BufferedReader br = null;
		
		try {
			br = new BufferedReader(new FileReader("test2.txt"));
		
		} catch (FileNotFoundException e) {
			System.out.println("해당 경로에 파일이 없습니다.");
		}
		
	}
}

 

결과

 

 

 

3. readLine()을 이용하여 파일 내용을 한 줄씩 가져오기

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

public class FileTest{ 
	
	// throws : 예외 던지기(일괄 처리)
	// 메소드 내에서 자주 발생하는 예외를 메소드를 사용하는 쪽에서 한 번에 예외처리를 하고자 사용한다.
	public static void main(String[] args) throws IOException{
		
		BufferedReader br = null;
		String line = null;
		
		try {
			br = new BufferedReader(new FileReader("test.txt"));
		
			// readLine() : 한 줄씩 가져오기
			// \n은 가져오지 않는다.
			while((line = br.readLine()) != null) {  // 더이상 읽을게 없을 때까지(null)
				System.out.print(line);
			}
			
		} catch (FileNotFoundException e) {;}
		
	}
}
 

결과

 

 

 

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

[Web_JAVA] 42  (0) 2022.03.28
[Web_JAVA] 41  (0) 2022.03.27
[Web_JAVA] 39  (0) 2022.03.25
[Web_JAVA] 38  (0) 2022.03.24
[Web_JAVA] 37  (0) 2022.03.23