public class LocalDataTimeApplication {
public static void main(String[] args) {
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDateTime);
// 현재 시간을 가져온 뒤
DateTimeFormatter dateTimeFormatter
= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 가져온 시간을 어떤 형태로 나타낼지 정하고
String str = localDateTime.format(dateTimeFormatter);
// 현재시간을 정한 형태로 나다낸다는 코드를 str에 집어 넣는다.
System.out.println(str);
}
}

현재날짜 + 현재시간을 나타내준다. 주로 데이터베이스에 데이터를 넣을 때 사용할 수 있다.
파일에는 크게 두종류의 파일이 있다. 하나는 binary파일로, 열어보면 2진수 또는 16진수로 되어있다. 주로 이미지, 멀티미디어 등 모든 종류의 파일이다. 다른 하나는 문자파일로 문자만으로 이루어진 파일이다. 메모장 파일이 하나의 예이다.
입력용 혹은 읽기용 으로 대상은 키보드, 파일이다. 우리가 입력한(키보드)문자나, 파일을 읽는다는 뜻이다. 1byte기반 입력이다. BufferdInputStream이 예이다
출력용으로 대상은 모니터, 파일이다. 모티터로 데이터를 출력하거나 파일로 데이터를 출력한다. 마찬가지로 1byte기반 출력이다. BufferdoutputStream이 예이다.
읽기와 쓰기는 동시에 이루어질 수 없기에 클래스가 따로 생성되어 있다.
public class WriterApplication {
public static void main(String[] args) throws Exception{//
OutputStream outputStream
= new FileOutputStream("src/main/resources/test1.db");// 적어준 경로에 2진 파일이 있으면 열고 없으면 만든다.
//생성자는 주어진 파일을 생성할 수 없으면 IOException을 일으킬 수 있으므로 예외처리가 필수이다.
// 입출력 순서
// 1) 파일 열기 with. 생성자
// 2) 글자쓰기 with. write함수
// 3) 파일 닫기 with.close
// 1) 파일 쓰기용으로 열기 : 그래이들 프로젝트의 현재 경로는 src의 상위 파일이다.
byte a = 10; // byte단위로 적어야한다.
byte b = 20;
byte c = 30;
// 파일에 write함수로 10, 20, 30 작성
outputStream.write(a);
outputStream.write(b);
outputStream.write(c);
// 파일에 접근하는것은 속도가 굉장히 느리다
// 그래서 접근을 최대한 줄여야 하는데 이걸 줄여주는것이 버퍼이다.
// 10, 20, 30을 쓸때마다 파일에 접근하면 굉장히 속도가 느려진다.
// 그래서 buffer라는 가상 공간에 데이터를 다 넣어두고 한번에 출력한다.
// 마지막엔 buffer를 모두 제거하고 파일에 접근해서 데이터를 처리해야하므로 flush처리를 해주어야한다.
outputStream.flush();
// 사용을 하지 않을 시 닫아줘야한다. 닫지 않으면 열어놓은 상태로 다른 사람들이 사용을 못함
outputStream.close();
}
}