2014-03-19 55 views
1

我想加密InputStream,我從FileItem.getInputStream();得到,我想知道加密流的長度。用Java獲取InputStream的大小

如果這將是一個簡單的FileInputStream,我可以嘗試File#length()FileInputStream#getChennal().size()雖然不知道即使是那些本來給我我想要的東西,但是,在這種情況下,我有什麼是InputStream(加密的)和我想找到相同的長度,我試圖在互聯網上搜索,但我找不到任何有效的解決方案。

請幫忙

+1

不是['#的FileItem的getSize()'](http://commons.apache.org/proper/commons-fileupload/apidocs /org/apache/commons/fileupload/FileItem.html#getSize%28%29)你需要什麼? – bereal

+0

爲什麼不使用Java 7的文件API?它有'Files.size()' – fge

+0

他想知道加密流的大小。 –

回答

1

你必須閱讀整個流。當你開始閱讀時,流可能不完整,所以當時可能不知道大小。

+0

高效的我的朋友,這個在互聯網上到處都是!是否明智的做到這一點,我可能會使用GB中的文件 –

+0

@VD':使用流式加密形式 - 其中有很多。爲什麼你需要提前的時間? –

+0

我實際上需要將其存儲在雲上,並且Cloud API需要它:( –

1

可以輸出什麼在InputStream和獲得的長度

ObjA = new ObjA; 

while(more message to read){ 
ObjA = inputStreamObj.read(); 
} 

System.out.println(ObjA.length()); 
+0

這與我的答案基本相同...... –