● 파일 입출력(Java Application 관점)
1. Writer(출력)
(1) BufferedWriter
- 버퍼를 사용한 출력 클래스
(2) FileWriter
- 전달한 경로의 파일을 출력하기 위한 목적으로 열어준다.
- 전달한 경로에 파일이 없다면 새롭게 만든 후 열어준다.
(3) File
- 전달한 경로에 있는 파일의 정보를 담는 타입
- 파일의 유무 검사, 파일 삭제 등
2. Reader(입력)
(1) BufferedReader
- 버퍼를 사용한 입력 클래스
(2) FileReader
- 전달한 경로의 파일을 출력하기 위한 목적으로 열어준다.
- 전달한 경로에 파일이 없다면 FileNotFoundException 예외가 발생한다.
(3) File
- 전달한 경로에 있는 파일의 정보를 담는 타입
- 파일의 유무 검사, 파일 삭제 등
※ 버퍼
- 임시 저장 공간
- flush() : 버퍼를 비워준다.
- close() : 자동으로 flush()가 되면서 닫힌다.
![](https://blog.kakaocdn.net/dn/z3tQi/btrwPa6mJew/Y5VdFz6D3Rfo77LQvTfrgk/img.png)
실습(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
}
}
![](https://blog.kakaocdn.net/dn/Hw7Tt/btrwVry2vZJ/skZgg8fqDSEKqLjpNo4LY1/img.png)
실습(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()));
}
}
![](https://blog.kakaocdn.net/dn/c2XekM/btrwZZhsOyX/wsnrjIEkS61PwVs0RSbjV1/img.png)
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()));
}
}
![](https://blog.kakaocdn.net/dn/bAYuAf/btrwZYQpEsn/yfthFA75bAk4AiiTZQdY6K/img.png)
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();
}
}
![](https://blog.kakaocdn.net/dn/tTLlb/btrwTcJnESH/gfTWTBk3fGVoIZa59hiOk1/img.png)
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("해당 경로에 파일이 없습니다.");
}
}
}
![](https://blog.kakaocdn.net/dn/dsgtyP/btrwUjONLCo/vluYHbI5IkkXUxDFlYx4w1/img.png)
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 |