
사용자가 저장하는 파일은 HDD에 섹터별로 분리되어 저장된다.
사용하면 할수록 파일이 쪼개지는 단편화가 진행된다.
HDD는 제조사마다 다르지만, 일반적으로 512byte를 읽어들인다.
int data = 0;
while((data = fis.read()) != -1){
//HDD에서 몇 바이트를 읽어들이든 1byte만 사용.
}
1. 512byte를 읽어들였을 때 저장할 배열을 생성.
byte[] data = new byte[512];
2. HDD에 읽어들인 크기대로 배열에 저장
int dataSize = 0;//읽어들인 크기 저장
while((dataSize = fis.read(data)) != -1){
//1. HDD에서 한번에 읽어온 값을 비어있는 배열에 저장.
//2. 읽어들인 데이터의 크기를 변수에 저장
}
DataInputStream, DataOutputStream 제공
객체가 클래스로부터 생성되었는지 비교하는 연산자.
객체 instanceof 클래스명
비동기적인 입출력 제공하는 클래스
기존의 I/O보다 효율적인 다중 연결과 대용량 데이터처리를 할 때 사용.
N-I/O의 핵심 구성 요소는 channel(입출력 소스)과 buffer(데이터를 임시로 저장하는데 사용)가 있다.
java.nio.files패키지의 Files클래스를 사용.
1. 내용을 읽어 들일 파일을 선택
java.nio.files.Path = Paths.get("경로");
2. 해당 파일의 모든 줄을 읽어 들인다.
List<String> lines = Files.readAllLines(path);
반복
for (String lines = Files.)
원본 파일
Path orifinal = Paths.get("원본파일명");
//of method도 추가
복사할 파일
Path copy = Paths.get("복사 파일명");
복사
try{
Files.copy(original, copy, 옵션);//StandardCopyOption.REPLACE_EXISTING : 파일이 있다면 덮어씀.
}catch(IOException ie){
}
C/S( Client / Server ) Programming(통신 프로그램)
java.net 패키지에서 관련 클래스들을 제공
network : 서로 다른 컴퓨터를 연결하기 위한 데이터 통신망.