使用外部应用程序修改笔记

Modify notes with external app

您好,我想为 Android 创建一个应用程序,它必须使用外部应用程序打开创建和修改笔记文件(仅文本)。我知道我不知道如何调用外部应用程序的路径。谢谢。

下面是从 sdcard root 读取文本文件的代码:

package com.dEvElOpIt.writepad;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import android.annotation.SuppressLint;
import android.util.Log;

public class FileOperations {
    public FileOperations() {
    }

    @SuppressLint("SdCardPath")
    public Boolean write(String fname, String fcontent) {
        try {
            String fpath = "/sdcard/" + fname + ".txt";
            File file = new File(fpath);
            // If file does not exists, then create it
            if (!file.exists()) {
                file.createNewFile();
            }
            FileWriter fw = new FileWriter(file.getAbsoluteFile());
            BufferedWriter bw = new BufferedWriter(fw);
            bw.write(fcontent);
            bw.close();
            Log.d("Suceess", "Sucess");
            return true;
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }
    }

    public String read(String fname) {
        BufferedReader br = null;
        String response = null;
        try {
            StringBuffer output = new StringBuffer();
            String fpath = "/sdcard/" + fname + ".txt";
            br = new BufferedReader(new FileReader(fpath));
            String line = "";
            while ((line = br.readLine()) != null) {
                output.append(line + "\n");
            }
            response = output.toString();
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
        return response;
    }
}

现在你可以按照下面的方法获取text文件的数据:

String fileName = input.getText().toString();
FileOperations fop = new FileOperations();
String text = fop.read(fileName);

其中 fileName 是要从 sdcard 的根目录加载的文件的名称。

如果你想在sdcard根目录中将数据保存为文本文件,请按照下面的说明进行操作:

FileOperations fop = new FileOperations();
            fop.write(mTitleText.getText().toString(), mBodyText.getText()
                    .toString());
            if (fop.write(fileName, fileContent) {
                Toast.makeText(
                        getApplicationContext(),
                        mTitleText.getText().toString()
                            fileName+ ".txt Successfully saved",
                        Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(getApplicationContext(), "I/O error",
                        Toast.LENGTH_SHORT).show();
            }

其中 fileName 是要从 sdcard 的根目录加载的文件名,
fileContent 是要保存的文本文件的内容.

不要忘记将下面的权限添加到您的 AndroidManifest.xml 文件中:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

希望对您有所帮助!