- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望用户从设备中选择一些 .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 步:传递 Uri
至 getContentResolver().openInputStream()
,并使用它和一个 InputStreamReader
而不是 FileReader
关于java - Android 从隐式 Intent 中获取 .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49257708/
我是一名优秀的程序员,十分优秀!