gpt4 book ai didi

java - 将字节转换为文件输入流

转载 作者:行者123 更新时间:2023-12-01 18:08:55 25 4
gpt4 key购买 nike

有没有办法可以将字节文件转换为文件输入流,以便在将其转换为位图之前可以对其进行解密。我尝试将其更改为 fileinputstream,然后再次更改,但似乎不起作用。

 ParseFile fileObject = (ParseFile) object.get("ImageFile");fileObject.getDataInBackground(new GetDataCallback() {

public void done(byte[] data, ParseException e) {
if (e == null) {
Log.d("test",
"We've got data in data.");
FileInputStream data1 = new FileInputStream(data);
// Decode the Byte[] into
// Bitmap
Bitmap bmp = BitmapFactory.decodeByteArray(decrypt(key, data), 0, data.length);
// Get the ImageView from
// main.xml
ImageView imgFile = (ImageView) findViewById(R.id.image);

// Set the Bitmap into the
// ImageView
imgFile.setImageBitmap(bmp);

// Close progress dialog
progressDialog.dismiss();

我的解密类采用字节和文件输入流作为参数

私有(private)字节[]解密(字节[] skey,FileInputStream fis){

    SecretKeySpec skeySpec = new SecretKeySpec(skey, "AES");
Cipher cipher;
byte[] decryptedData=null;
CipherInputStream cis=null;
try {
cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, skeySpec, new IvParameterSpec(iv));
// Create CipherInputStream to read and decrypt the image data
cis = new CipherInputStream(fis, cipher);
// Write encrypted image data to ByteArrayOutputStream
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
byte[] data = new byte[2048];
while ((cis.read(data)) != -1) {
buffer.write(data);
}
buffer.flush();
decryptedData=buffer.toByteArray();
}catch(Exception e){
e.printStackTrace();
}
finally{
try {
fis.close();
cis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return decryptedData;
}

最佳答案

您似乎在问这个:

public void done(byte[] data, ParseException e) {
...
FileInputStream data1 = new FileInputStream(data);

这(显然)不会编译。如果您确实想为字节数组中的数据打开一个 FileInputStream,则需要将数据写入文件系统中的(临时)文件,然后创建一个 FileInputStream对于该文件。那就麻烦了。

更好的想法是改变

private byte[] decrypt(byte[] skey, FileInputStream fis) {

private byte[] decrypt(byte[] skey, InputStream fis) {

然后在 data1 数组上打开一个 ByteArrayInputStream 并将其传递给decrypt

关于java - 将字节转换为文件输入流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34365373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com