자바 파일 가 져 오기 크기

자바 에서 파일 의 크기 를 어떻게 가 져 옵 니까?
두 가지 방법 이 있어 요.
방식 1:File 의 length()방법 사용 하기;
방식 2:FileInputStream 의 available()방법 사용 하기;
실례:
@Test
	public void test01() throws IOException {
		String filepath = "d:\\bin\\pushpoxy-0.0.1-SNAPSHOT.jar";
		System.out.println("File has " + new File(filepath).length()+ " bytes");
		FileInputStream fis = null;  
        fis = new FileInputStream(filepath);  
        System.out.println("File has " + fis.available() + " bytes");

	}

실행 결과:
File has 29061936 bytes
File has 29061936 bytes
사실 이 두 가지 방법 은 차이 가 있다.
File 의 length()방법 은 파일 이 차지 하 는 하 드 디스크 공간 크기 를 가 져 오 는 것 입 니 다.
FileInputStream 의 available()방법 은 읽 을 수 있 는 바이트 가 얼마나 있 는 지 입 니 다.
available()방법의 설명 은 다음 과 같다.
Returns an estimate of the number of remaining bytes that can be read (or skipped over) from this input stream without blocking by the next invocation of a method for this input stream. The next invocation might be the same thread or another thread. A single read or skip of this many bytes will not block, but may read or skip fewer bytes. 
 
우 리 는 위의 프로그램 을 약간 수정 했다.
@Test
	public void test01() throws IOException {
		String filepath = "d:\\bin\\pushpoxy-0.0.1-SNAPSHOT.jar";
		System.out.println("File has " + new File(filepath).length()+ " bytes");
		FileInputStream fis = null;  
        fis = new FileInputStream(filepath);
        byte[]bytes=new byte[10];
        fis.read(bytes);
        System.out.println("File has " + fis.available() + " bytes");
        fis.skip(-10);
        System.out.println("File has " + fis.available() + " bytes");

	}

 실행 결 과 는 다음 과 같 습 니 다.
File has 29061936 bytes
File has 29061926 bytes
File has 29061936 bytes
 
요약:파일 을 가 져 오 는 데 큰 시간 동안 File 의 length()방법 을 사용 하 는 것 을 권장 합 니 다.
 

좋은 웹페이지 즐겨찾기