티스토리 뷰
제 16장 스레드
생산자 - 소비자 문제
buffer
wait() 와 notify()
제 24장 입출력
ㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇ
AWT : 운영체제로 부터 그래픽 자원을 빌려와 GUI구현
Swing : 자바안에 독립적인 UI컴포넌트 자원을 내포
JavaFX :
스트림 : 순서가 있는 데이터의 연속적인 흐름
파일의 경로
-절대경로 : 최상위 루트로부터의 경로
-상대경로 : 현재 내 위치로부터의 경로
-정규경로 : 최단거리 절대경로
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileStreamTest {
public static void main(String[] args) {
FileInputStream in = null; //사용할 스트림 객체를 참조할 참조변수 선언
FileOutputStream out = null;
try {
// 사용할 스트림 객체 생성, 생성자에는 목적지 파일에 대한 정보입력
//file타입의 객체 FileDescriptor String 타입의 파일 정보 중에 하나 넣으면 됨
//문자열로 주려면 내가 목적지로 사용할 파일의 경로를 써주면됨
//파일의 경로 -절대경로, 상대경로, 정규경로
out = new FileOutputStream("data.txt");
for(int i = 0; i < 300; i++)
out.write(i);
in = new FileInputStream("data.txt");
int c;
while( (c = in.read()) != -1 )
System.out.println(c);
}
catch(IOException e) {
}
finally {
try {
//스트림은 다 썼으면 닫아주기
//try구문에서 객체 생성하다 예외가 나면 finally구문에서 참조변수가 null이어서 멤버함수 close를 접근하면
//NullPointerException이 발생할수있으므로 조건검사
if(out != null)
out.close();
if(in != null)
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
buffer 는 바가지
바가지의 크기는 기본 8192
바가지가 꽉찼는데 새로운 데이터가 들어오면 바가지에 있는 데이터를 처리
out.flush(); 현재 바가지에 있는 데이터 강제로 처리하기
직렬화 : 객체가 가진 데이터들을 순차적인 데이터로 변환하는 것