2011-08-11 2 views
-1

문제가 생겼습니다.Java로 파일의 실제 크기를 얻으시겠습니까?

  1. 토런트에서 파일 다운로드를 시작했습니다. 파일의 전체 크기는 699MB입니다.
  2. 그러나 토런트 클라이언트를 중지 한 후 토런트 클라이언트에서MB의 데이터가 다운로드되었음을 보여 주므로 대기열에있는 파일이 하나뿐입니다. 내가 파일의 길이를 계산하고 크기의 699메가바이트

파일 파일 = 새로운 파일 ("보여 자바 IO 기능을 사용

  • D : /Easy.A.2010.BDRip.XviD-iMBT/easy.a .2010.bdrip.xvid-imbt.avi ");

    System.out.println("File Size="+file.length()); 
    

    // 내가 그것을 내가 서버에 분할 다른 동일한 크기의 부분으로 파일을 업로드 오전 이후 단계에서 699메가바이트

    입니다 가지고 매크로 블럭으로 변환 한 후. 파일 크기가 파일의 실제 크기가 아니므로 그래서 난 예외

    java.lang.NegativeArraySizeException 
    

    있어 내가 파일의 실제 크기를 얻을 수있는 방법을 말해하거나 전체 파일인지 아닌지 파일에 대한 정보를 얻을하시기 바랍니다.

    감사

  • +0

    모든 크기 부분을 이해할 수 있지만 예외가 발생하는 코드는 파일 크기가 – Mark

    +0

    이므로 아무 것도 볼 필요가 없습니다. 배열을 만들 때 사용중인 값을 확인하십시오. 코드의 일부 관련 부분을 볼 수 있습니까? – doNotCheckMyBlog

    +0

    같은 것을 수행하고 있습니다. String [] negative = new String [-1]; 여기서 "-1"은 배열을 인스턴스화하는 데 사용하는 변수의 값이 될 수 있습니다. – doNotCheckMyBlog

    답변

    2

    나는 이것이 관련이 있는지 확실하지 않습니다,하지만 모든 토런트 클라이언트가 나는 다운로드의 시작 부분에 최종 크기의 파일을 만들어 사용했다.

    즉, 699MB 영화의 경우 시작시 빈 699MB 파일이 생성되고 7MB 만 다운로드되면 해당 공백에서 7MB가 채워졌지만 디스크의 파일 크기는 699MB로 유지됩니다. 모두 다운로드를 통해.

    +0

    예, 맞습니다. , 나는 단지 내 프로그램이 그 파일의 7MB 크기를 보여 주어야한다는 해결책을 원한다. – Asghar

    +0

    '공백'699MB 파일? :) – amal

    +0

    @amal 디스크에 699MB의 공간을 차지하지만 가비지/임의 데이터가 포함 된 파일을 의미합니다. –

    1

    Anglet이 맞다. torrent 클라이언트는 size = torrent_file 인 빈 파일을 만듭니다. 그리고 7MB를 다운로드하면 공백 파일이 채워지며, 먼저 토런트 클라이언트가 생성 한 파일이 공백으로 채워지는지 확인하십시오 당신은 얼마나 많은 공백이나 비 공백을 계산할 수 있습니다.

    1

    마음을 확인하십시오. 파일 크기 또는 NegativeArraySizeException에 대한 질문입니까? File.length()는 디렉토리가 마지막으로 업데이트 된 시간에 따른 파일의 길이를 제공합니다. 파일이 여전히 열려 있고 여전히 확장중인 경우이 정보는 최신 정보가 아닐 수 있습니다.

    +0

    내 질문에 대한 파일의 실제 크기입니다. 내 말은 7MB – Asghar

    관련 문제