IO(입출력)
2.java.io.File
- 파일에 대한 정보를 가진 클래스
- 파일을 생성하고 삭제하고 정보를 확인할 수 있도록 해주는 클래스
- 제일 중요한 작업들은 파일의 존재여부 파악 ,마지막 수정 날짜를 파악하는 작업이 될수 있습니다.
3.stream
1) 분류
- 입력 스트림(읽어오는 것) 과 출력 스트림(내보내는 것)
- 바이트 스트림 (바이트 단위로 입출력) 과 문자 스트림 (문자 단위로 입출력- 양쪽의 인코딩 방식이 같아야 함, 양쪽의 인코딩 방식이 다르면 바이트 스트림을 사용해야 함)
2) 특징
4.바이스 스트림
- 바이트 단위로 데이터를 입출력하기 위한 스트림 - 기본 스트림
- 입력을 위한 스트림의 최상위 클래스로 추상 클래스
- 읽기 작업을 위한 메서드가 선언되어 있습니다.
- 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) {
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());
}
}
}