Java:我需要从outputstream中获取字节数组
在我的例子中,输出流基本上是FileOutputStream。因此,对于该代码:
ByteArrayOutputStream bos = (ByteArrayOutputStream) streamToEncrypt;
(其中streamToEncrypt是OutputStream)正在获取此异常:
java.lang.ClassCastException: java.io.FileOutputStream cannot be cast to java.io.ByteArrayOutputStream
我需要做的就是从这个输出流中获取字节数组。 我无法访问此级别的文件。我所拥有的只是这个输出流,在将其推送到文件之前必须对其进行加密
# 1 楼答案
这根本没有任何意义
ByteArrayOutputStream会将您推送到其中的数据。。。并将它们存储在以后可以检索的字节数组中
FileOutputStream获取数据。。。并将其推送到文件中
这是两个完全不同的阶层;你不能把一个投进另一个!这就像你试图把一个字符串转换成一个整数;或者说“你是苹果,现在是香蕉”,把苹果变成香蕉。根本不行
因此,这里真正的“答案”是:你应该后退一步,明确你打算对数据做什么;然后使用与该需求匹配的流
# 2 楼答案
无法从
OutputStream
中获取字节。你把他们从InputStream
中弄出来。将字节放入OutputStream
如果字节已经被写入
OutputStream
,那就太晚了。再次打开文件并从中读取是访问这些数据的唯一方法如果要加密输出流,应该构造流并将其传递给写入流的代码