gpt4 book ai didi

Android 打开文本文件后读取 Intent.ACTION_GET_CONTENT

转载 作者:太空狗 更新时间:2023-10-29 16:15:18 25 4
gpt4 key购买 nike

流程是:

  1. 用户需要选择要使用的文本文件以及弹出的默认 Android 资源管理器。
  2. 然后我想存储包含文件名的字符串,以实际打开文件进行读取。
  3. 我想打开该文件并将其重写为应用内部存储上的新文件。
  4. 我想从应用内部存储打开新创建的文件。
  5. 奖励 1 - 如果它现在是 .txt 文件而不是 .doc,我想在步骤 3 中将他转换为常规 .txt 文件以上重写。
    奖励 2 - 如何处理大型文本文件?

代码如下:

// 1. Start with user action pressing on button to select file
addButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
startActivityForResult(intent, PICKFILE_RESULT_CODE);
}
});

// 2. Come back here
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PICKFILE_RESULT_CODE) {
// Get the Uri of the selected file
Uri uri = data.getData();
String filePathName = "WHAT TODO ?";
LaterFunction(filePathName);
}
}

// 3. Later here
public void LaterFunction(String filePathName) {
BufferedReader br;
FileOutputStream os;
try {
br = new BufferedReader(new FileReader("WHAT TODO ?"));
//WHAT TODO ? Is this creates new file with
//the name NewFileName on internal app storage?
os = openFileOutput("newFileName", Context.MODE_PRIVATE);
String line = null;
while ((line = br.readLine()) != null) {
os.write(line.getBytes());
}
br.close();
os.close();
lastFunction("newFileName");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

// 4. And in the end here
public void lastFunction(String newFileName) {
//WHAT TODO? How to read line line the file
//now from internal app storage?
}

最佳答案

第 1 步:删除 String filePathName = "WHAT TODO ?";

第 2 步:将 LaterFunction(filePathName); 更改为 LaterFunction(uri);

第 3 步:将 br = new BufferedReader(new FileReader("WHAT TODO ?")); 更改为 br = new BufferedReader(new InputStreamReader(getContentResolver().openInputStream(uri ));

这是解决您的问题所需的最低限度。

但是,*/* 的 MIME 类型将匹配任何类型的文件,而不仅仅是文本文件。不应使用 readLine() 复制二进制文件。如果您只需要纯文本文件,请使用 text/plain 而不是 */*

关于Android 打开文本文件后读取 Intent.ACTION_GET_CONTENT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29986553/

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