books.dat 이라는 파일을 읽어들일때 직렬화를 해서 객체에 할당을 하려고 한다.
class Person implements java.io.Serializable{
String transient name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
객체를 만들 때 보통 "이지원", 18이라고 하게되면 알맞게 저장이 되지만
위처럼 name에 대해서 직렬화를 시키지 않겠다라고 선언해버리면 name에 대한 부분이 저장이 되지 않는다.
File.separator
File.separator는 프로그램이 실행 중인 OS에 해당하는 구분자를 리턴한다.
File file = new File("/tmp/" + File.separator + "text.txt");
System.out.println(file.toPath());
Q. 왜 바이트로 내보내야됨? 다른걸로 하면 안됨? 바이트로 하면 1개씩밖에 못하니까 성능이 별로잖아
그래서 ByteArrayInputStream 같은거 사용해서 여러개 바이트를 동시에 내보냄
네트워크 통신단위가 byte라서.
일반 데이터 속도 단위 : 여러 차례의 초당 비트(bit/s)와 초당 바이트(B/s)
한글이 아닌 이미지,데이터 같은것들은 바이트로 내보내기 가능
Q. 한글같은건 bytestream써서했는데 글자가 깨지고 정상적이지않음
==> char형은 xxStream안쓰고 reader/writer써야됨
File경로에서 . 이 같는 의미
상대경로의 기준은 java program을 실행하는 위치(소스와 무관)
어디서 실행하느냐에 따라 다름
ex) 이클립스에서 run돌릴 때 vs cmd에서 bin폴더가서 java파일 실행했을 때 상대경로가 모두 다름
src폴더를 가지고 경로를 활용하게 되면 위험함. bin폴더로 쓰자
why?)
개발을 다 하고 src폴더를 참고해서 줄꺼임?
절때 아님. bin폴더에서 컴파일 된 결과값 애들만 주지. src에 있는 소스코드는 개발자가 관리해야되니까
애초에 경로 자체도 bin으로 하는 습관을 기르면 좋다는 이야기임
'Backend > Java' 카테고리의 다른 글
Java 순열과 조합 (0) | 2022.08.04 |
---|---|
Java 코딩테스트를 위한 문법 (0) | 2022.08.02 |
Java 예외 처리 (0) | 2022.07.26 |
Java Generic, Collection에 대해 (0) | 2022.07.26 |
Java Override & Overload (0) | 2022.07.20 |