카카오 클라우드 스쿨 12월 23일 Java IO(입출력)

최재유·2022년 12월 23일
0

IO(입출력)

2.java.io.File

  • 파일에 대한 정보를 가진 클래스
  • 파일을 생성하고 삭제하고 정보를 확인할 수 있도록 해주는 클래스
  • 제일 중요한 작업들은 파일의 존재여부 파악 ,마지막 수정 날짜를 파악하는 작업이 될수 있습니다.

3.stream

  • 데이터를 운반하는데 사용되는 통로

1) 분류

  • 입력 스트림(읽어오는 것) 과 출력 스트림(내보내는 것)
  • 바이트 스트림 (바이트 단위로 입출력) 과 문자 스트림 (문자 단위로 입출력- 양쪽의 인코딩 방식이 같아야 함, 양쪽의 인코딩 방식이 다르면 바이트 스트림을 사용해야 함)

2) 특징

  • FIFO 구조
  • 단방향성

4.바이스 스트림

  • 바이트 단위로 데이터를 입출력하기 위한 스트림 - 기본 스트림

1) InputStream

  • 입력을 위한 스트림의 최상위 클래스로 추상 클래스
  • 읽기 작업을 위한 메서드가 선언되어 있습니다.

  • int available()

특정한 디렉토리 현재날짜로 로그를 기록하는 코드

package kakao.wodb.io;

import java.io.FileWriter;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

public class CharacterStreamMain {

	public static void main(String[] args) {
		//오늘 날짜로 파일명을 생성: 2022-12-23.log
		//디렉토리 경로 생성
		String directory ="/Users/choijaeyoo/git/kakaojava/javabasic//"; 
		//오늘 날짜 문자열 만들기
		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		String filename = sdf.format(date);
		//파일 경로 만들기
		String path = String.format("%s%s%S",
				directory, filename, ".log");
		//문자 단위로 버퍼를 이용해서 기록
		try(PrintWriter pw = new PrintWriter(new FileWriter(path, true))) 
		{
			pw.println("안녕하세요");
			pw.println("반갑습니다");
			pw.println("1234");
			pw.flush();
			
		}catch(Exception e) {
			System.out.println(e.getLocalizedMessage());
		}
	}

}

다른 곳의 파일의 내용 읽기

config.properties

package kakao.wodb.io;

import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;

public class PropertiesMain {

	public static void main(String[] args) {
		// 설정 파일의 경로를 지정
		File file = new File("config.properties");
		try(FileInputStream fis = new FileInputStream(file)){
			//설정 파일을 불러오기 위한 준비
			Properties properties = new Properties();
			properties.load(fis);
			//읽어오기
			System.out.println(properties.getProperty("password"));
			
		}catch(Exception e) {
			System.out.println(e.getLocalizedMessage());
		}
	}

}

0개의 댓글