Gur*_*lki 124 java bytearray inputstream outputstream
我的数据库表中有一个blob列,我必须byte[]在我的Java程序中使用它作为映射并使用这些数据我必须将其转换为InputStream或OutputStream.但是当我这样做时,我不知道内部会发生什么.任何人都能简单地向我解释一下当我进行这种转换时会发生什么吗?
Ste*_*n C 192
您可以按如下方式创建和使用字节数组I/O流:
byte[] source = ...;
ByteArrayInputStream bis = new ByteArrayInputStream(source);
// read bytes from bis ...
ByteArrayOutputStream bos = new ByteArrayOutputStream();
// write bytes to bos ...
byte[] sink = bos.toByteArray();
Run Code Online (Sandbox Code Playgroud)
假设您正在使用实现标准JDBC Blob接口的JDBC驱动程序(并非所有操作都可以),您还可以使用和方法1连接一个InputStream或OutputStream一个blob ,您也可以直接获取和设置字节.getBinaryStreamsetBinaryStream
(通常,您应该采取适当的步骤来处理任何异常,并关闭流.但是,关闭bis和bos上面的示例是不必要的,因为它们不与任何外部资源相关联;例如文件描述符,套接字,数据库连接.)
1 - 该setBinaryStream方法实际上是一个吸气剂.去搞清楚.
pst*_*ton 12
我假设你的意思是'使用'意味着读取,但我会解释的读取案例基本上可以反转写案例.
所以你最终得到一个byte [].这可能代表任何类型的数据,可能需要特殊类型的转换(字符,加密等).让我们假装您要将此数据原样写入文件.
首先,您可以创建一个ByteArrayInputStream,它基本上是一个按字节顺序提供字节的机制.
然后,您可以为要创建的文件创建FileOutputStream.对于不同的数据源和目的地,有许多类型的InputStream和OutputStream.
最后,您将InputStream写入OutputStream.在这种情况下,字节数组将按顺序发送到FileOutputStream进行写入.为此,我建议使用IOUtils
byte[] bytes = ...;//
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
FileOutputStream out = new FileOutputStream(new File(...));
IOUtils.copy(in, out);
IOUtils.closeQuietly(in);
IOUtils.closeQuietly(out);
Run Code Online (Sandbox Code Playgroud)
并反过来
FileInputStream in = new FileInputStream(new File(...));
ByteArrayOutputStream out = new ByteArrayOutputStream();
IOUtils.copy(in, out);
IOUtils.closeQuietly(in);
IOUtils.closeQuietly(out);
byte[] bytes = out.toByteArray();
Run Code Online (Sandbox Code Playgroud)
如果您使用上面的代码片段,则需要处理异常,我建议您在finally块中执行'closing'.
小智 6
我们可以使用ByteArrayInputStream将byte []数组转换为输入流
String str = "Welcome to awesome Java World";
byte[] content = str.getBytes();
int size = content.length;
InputStream is = null;
byte[] b = new byte[size];
is = new ByteArrayInputStream(content);
Run Code Online (Sandbox Code Playgroud)
有关完整示例,请访问http://www.onlinecodegeek.com/2015/09/how-to-convert-byte-into-inputstream.html
| 归档时间: |
|
| 查看次数: |
273591 次 |
| 最近记录: |