Java – 按块读取文件块

我想一块一块地读一个文件。 该文件被分成几个部分,存储在不同类型的媒体上。 我目前所做的是调用文件的每个单独部分,然后将其合并回原始文件。

问题是我需要等到所有块都到达才能播放/打开文件。 是否有可能在他们到达时阅读这些块,而不是等待它们全部到达。

我正在处理媒体文件(电影文件)。

谢谢

抱歉我的英语

你想要的是源数据线 。 这非常适合当您的数据太大而无法一次将其保存在内存中时,因此您可以在收到整个文件之前开始播放它。 或者如果文件永远不会结束。

在这里查看源数据行的教程

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

我会使用这个FileInputSteam

请参阅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 } 
    Interesting Posts