gpt4 book ai didi

java - Android 从隐式 Intent 中获取 .txt 文件

转载 作者:行者123 更新时间:2023-11-30 00:04:27 24 4
gpt4 key购买 nike

我希望用户从设备中选择一些 .txt 文件,然后我的应用将其副本存储在其 Assets 文件夹中。

buttonChooseFile.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent txtIntent = new Intent(Intent.ACTION_GET_CONTENT);
txtIntent.setType("text/plain");
startActivityForResult(txtIntent, 1);
}
});

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if (resultCode == RESULT_OK) {
File file = new File(data.getData().getPath());
chosenTxtFile = file;

}
}
}

当我运行它时,我确实可以从我的手机中选择一个文件,但是现在当我想执行以下代码时,没有任何反应:

StringBuilder stringBuilder = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(chosenTxtFile));
String line;

while ((line = br.readLine()) != null) {
stringBuilder.append(line);
stringBuilder.append('\n');
}
br.close();
}
catch (IOException e) {
}

textView.setText(stringBuilder.toString());

我在这里阅读:Android: Reading txt file using implicit intent我应该使用 ContentResolver。但是,由于我是新手,所以我不确定如何。任何人都可以帮我编写适用于我的代码的 ContentResolver 吗?非常感谢!

最佳答案

I want the user to choose some .txt file from device and then my app to store the copy of it inside its assets folder.

首先, Assets 在运行时是只读的。设备上没有“ Assets 文件夹”。

其次,您的代码假定 ACTION_GET_CONTENT返回文件系统路径。多年来情况并非如此。

Could anyone please help me write ContentResolver that would work with my code?

第 1 步:停止考虑文件,如 ACTION_GET_CONTENT可以从很多地方获取内容,其中很少涉及文件系统上的文件

第 2 步:使用 Uri ( data.getData() ),而不只是其中的一部分 ( data.getData().getPath() )

第 3 步:传递 UrigetContentResolver().openInputStream() ,并使用它和一个 InputStreamReader而不是 FileReader

关于java - Android 从隐式 Intent 中获取 .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49257708/

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