자바 I/O & NIO 네트워크 정리 4: 바이트 단위 IO 클래스

0

1. 🍕 File 클래스

1. IO 클래스에서 지켜야 할 것

  • try문에서 사용할 IO 클래스를 선언한다. 보통 Null을 선언한다.
  • try 블록안에서 IO 클래스 객체를 생성한다.
  • finally 블록 안에서 IO 클래스의 close() 메소드를 호출한다.

2. File 클래스를 이용한 파일 정보 구하기

파일명을 읽어서 파일이 존재 할경우, 파일의 정보를 불러온다.


File f = new File(//파일객체)
if(f.exists()){
	f.length();
}else{
	//파일이 존재하지않는다 
 }
}

3. File 클래스를 이용한 파일 삭제

File f = new File(//파일객체)
boolean deleteflag=f.delete();
if(deleteflag){
//삭제됨
}else{
삭제안됨
}

4. File 클래스를 이용한 디렉토리 파일목록 출력

File f = new File(//파일객체)
if(f.isDirectory()){
	File[] fileList = f.listFiles();
    for(int i = 0; i<fileList.length;i++)
}

5. File 클래스를 이용한 임시 파일의 생성과 삭제

2. 🍔 바이트단위 IO 클래스

바이트 단위 IO는 가장 기본이 되는 IO클래스이다.

1. System.in을 이용해서 키보드로부터 입력받기

int i= 0;

try{
	while((i= System.in.read()) != -1){
    	System.out.write(i);
    	}
    }catch(IOException e){
    system.out.print(e)
    }

}

2. 파일을 읽어 출력하는 프로그램의 개선

파일을 읽을때 몇가지 고려해야할 부분이 있다.
자바 프로그래밍으로 1바이트를 읽어오라고 하면 512바이트를 읽게되는 문제이다.
결국 1000바이트를 읽어오라하면, 1000바이트를 1바이트씩읽지않고 512바이트를 1000번 읽는것이 문제이다.

FileInputStream fis = null;
try{
	fis = new FileInputStream();
    int readcount = 0;
    byte[] buffer = new byte[512];
    while((readcount = fis.read(buffer)) ! = -1){
    	System.out.write(buffer, 0, readcount)
    }
}

read()에 512배열을 전달하면 읽어들인 내용이 buffer에 저장된다.
그리고 파일로부터 읽어 들여야할 내용이 없을 경우, -1을 반환한다.

3. 파일 복사

FileInputStream fis = null;
FileOutputStream fos = null;
try{
	fis = new FileInputStream();
    fos = new FileOutputStream();
    int readcount = 0;
       while((readcount = fis.read(buffer)) ! = -1){
    	fos.write(buffer,0,readcount);
    }

}

4. DataInputStream과 DataOutputStream

profile
쉽게 가르칠수 있도록 노력하자

0개의 댓글