8
A
回答
22
可以通過使用下面的代碼來完成,而無需使用apache IO Commons。
final InputStream in = dataHandler.getInputStream();
byte[] byteArray=org.apache.commons.io.IOUtils.toByteArray(in);
感謝,
納倫德拉
0
是這樣的東西你在找什麼?
public static byte[] getBytesFromDataHandler(final DataHandler data) throws IOException {
final InputStream in = data.getInputStream();
byte out[] = new byte[0];
if(in != null) {
out = new byte[in.available()];
in.read(out);
}
return out;
}
UPDATE:
基於dkarp的評論,這是不正確。根據該文檔爲InputStream
:
返回可以從該輸入流不被此輸入流的方法的下一呼叫者無阻塞讀取(或跳過)的字節數。下一個調用者可能是同一個線程或另一個線程。
它看起來像Costi在這裏有正確的答案。
4
private static final int INITIAL_SIZE = 1024 * 1024;
private static final int BUFFER_SIZE = 1024;
public static byte[] toBytes(DataHandler dh) throws IOException {
ByteArrayOutputStream bos = new ByteArrayOutputStream(INITIAL_SIZE);
InputStream in = dh.getInputStream();
byte[] buffer = new byte[BUFFER_SIZE];
int bytesRead;
while ((bytesRead = in.read(buffer)) >= 0) {
bos.write(buffer, 0, bytesRead);
}
return bos.toByteArray();
}
請注意,ByteArrayOutputStream.toByteArray()創建內部字節數組的副本。
11
你可以這樣說:
public static byte[] toBytes(DataHandler handler) throws IOException {
ByteArrayOutputStream output = new ByteArrayOutputStream();
handler.writeTo(output);
return output.toByteArray();
}
1
我用這個代碼:
public static byte[] getContentAsByteArray(DataHandler handler) throws IOException {
byte[] bytes = null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
handler.writeTo(bos);
bos.flush();
bos.close();
bytes = bos.toByteArray();
return bytes;
}
相關問題
- 1. 如何將InputStream轉換爲DataHandler?
- 2. 將字節轉換爲字節[]
- 3. 如何將字節[]轉換爲字節[]
- 4. 將char轉換爲字節
- 5. 將字節[]轉換爲SAFEARRAY
- 6. 將字節[]轉換爲Int8
- 7. 將NSData轉換爲字節
- 8. 將UUID轉換爲字節
- 9. 將pandas.DataFrame轉換爲字節
- 10. 將NSString轉換爲字節
- 11. 將FloatBuffer []轉換爲字節[]
- 12. 將PDF轉換爲字節
- 13. 將字節轉換爲位
- 14. 將BitmapImage轉換爲字節[]
- 15. 將字節轉換爲SByte
- 16. 將HttpContent轉換爲字節[]
- 17. 將字節[]轉換爲JsonObject
- 18. 將UIImage轉換爲字節
- 19. 將字節轉換爲UIImage
- 20. 將sbyte轉換爲字節
- 21. 將字節[]轉換爲int
- 22. 將IRandomAccessStreamWithContentType轉換爲字節[]
- 23. 將字節[]轉換爲PDF
- 24. 將system.data.linq.binary轉換爲字節[]
- 25. 通過反轉字節將小字節轉換爲大字節
- 26. Python 3.4將字節字節字節轉換爲字節對象
- 27. 將字符串[]轉換爲字節[] 2個字符轉換爲字節?
- 28. 將NSData轉換爲base64encoded並將字節數組轉換爲C#
- 29. Python將ASCII字符轉換爲字節
- 30. 如何將數字轉換爲字節?
`InputStream.available()`是不適合於此目的。從'DataHandler`返回的`PipedInputStream`返回緩衝區之前緩衝區中可用的字節數,而不是總大小。 – dkarp 2011-01-12 17:27:36
有趣。在處理Web服務時,我在很多地方都看到過這些代碼。 – Casey 2011-01-12 17:31:17