2012-06-19 2 views
4

한 곡씩 읽으 려합니다. 파일은 다른 유형의 미디어에 저장된 여러 조각으로 나뉩니다. 현재 내가하고있는 일은 파일의 각 개별 파일을 호출 한 다음 원본 파일과 다시 병합합니다.Java - 청크로 파일 청크 읽기

문제는 파일을 재생하거나 열기 전에 모든 청크가 도착할 때까지 기다려야한다는 것입니다. 청크가 모두 도착하기를 기다리는 것과는 반대로 청크가 도착할 때 청크를 읽을 수 있습니까?

미디어 파일 (동영상 파일) 작업을하고 있습니다.

덕분에 영어

+0

당신이에서이 데이터를 읽고이 FileInputSteam을 사용하기위한 튜토리얼 봐? 왜 기다려야하니? – cklab

답변

1

당신이 원하는 무엇 source data line입니다. 이 기능은 데이터가 너무 커서 메모리에 저장할 수 없을 때 유용하므로 전체 파일을 받기 전에 재생을 시작할 수 있습니다. 또는 파일이 끝나지 않는 경우.

source data line here

http://docs.oracle.com/javase/6/docs/api/java/io/FileInputStream.html#read

내가

+0

dave 어떤 파일을 다루고 있습니까? XML 텍스트, mp3, 요법 ... 나는 조금 더 많은 정보가 당신의 질문에 도움이 될 것이라고 생각합니다. –

+1

동영상 파일, flv, mp4, avi 등 – david

+0

안녕하세요, 데이비드 내 수정 된 답변을 확인하십시오. 그게 당신의 질문을 해결할 수 있는지 알려주지. –

10

한 번에 바이트를 읽어 InputSteram.read(byte[])를 참조하십시오 내 약

* 죄송합니다.

예제 코드 :

try { 
    File file = new File("myFile"); 
    FileInputStream is = new FileInputStream(file); 
    byte[] chunk = new byte[1024]; 
    int chunkLen = 0; 
    while ((chunkLen = is.read(chunk)) != -1) { 
     // your code.. 
    } 
} catch (FileNotFoundException fnfE) { 
    // file not found, handle case 
} catch (IOException ioE) { 
    // problem reading, handle case 
} 
+0

네,하지만 그 경우에는 모든 청크가 생길 때까지 기다려야합니다. 내 문제는 내가 여러 덩어리를 가지고 있다는 것입니다 ... 두 번째 덩어리가 도착하기를 기다리는 동안 파일을 열 수 있기를 바랍니다. @cklab – david