使用外部应用修改备注

时间:2015-01-02 12:58:02

标签: android call external

您希望为Android创建一个应用程序,该应用程序必须使用外部应用程序打开创建和修改注释文件(仅文本)。我知道我不知道如何调用外部应用程序的路径。感谢。

1 个答案:

答案 0 :(得分:0)

以下是从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 root中的文本文件:

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" />

希望这有帮助!