gpt4 book ai didi

java - 从 FileInputStream 获取文件对象

转载 作者:搜寻专家 更新时间:2023-11-01 07:50:21 26 4
gpt4 key购买 nike

我需要 Android 设备上图像的文件对象。

我正在使用一个函数来获取给定 URI 的 FileInputStream。

FileInputStream getSourceStream(Uri u) throws FileNotFoundException {
FileInputStream out = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
ParcelFileDescriptor parcelFileDescriptor =
getContentResolver().openFileDescriptor(u, "r");
FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor();
out = new FileInputStream(fileDescriptor);
} else {
out = (FileInputStream) getContentResolver().openInputStream(u);
}
return out;
}

这将返回一个 FileInputStream。我需要的是图像的文件对象。如何从 FileInputStream 获取文件?

更新

这就是我获取 URI 的方式:

    Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, ""), PICK_IMAGE);

onActivityResult 上,我得到了图像的 URI。

@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
if(resultCode == RESULT_OK){
String uri = data.getData();
}
}

最佳答案

您可以使用以下代码将 FileInputStream 转换为 File 对象。

try {

File outputFile = new File("YOUR DESIRED FILE PATH");


FileOutputStream fos = new FileOutputStream(outputFile);
int c;

while ((c = fileInputStream.read()) != -1) {
fos.write(c);
}

fileInputStream.close();
fos.close();
} catch (FileNotFoundException e) {
System.err.println("FileStreamsTest: " + e);
} catch (IOException e) {
System.err.println("FileStreamsTest: " + e);
}

这里 'fileInputStream' 是 getSourceStream() 返回的对象

关于java - 从 FileInputStream 获取文件对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35617934/

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