Android 使用外部应用程序修改注释

Android 使用外部应用程序修改注释,android,call,external,Android,Call,External,您好,希望为Android创建一个应用程序,该应用程序必须使用外部应用程序打开创建和修改o note文件(仅文本)。我知道路径,但不知道如何调用外部应用程序。谢谢。下面是从sdcard根目录中读取文本文件的代码: package com.dEvElOpIt.writepad; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; i

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

下面是从
sdcard
根目录中读取文本文件的代码:

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;
    }
}
String fileName = input.getText().toString();
FileOperations fop = new FileOperations();
String text = fop.read(fileName);
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();
            }
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
现在您可以按照下面提到的方法获取
text
文件的数据:

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;
    }
}
String fileName = input.getText().toString();
FileOperations fop = new FileOperations();
String text = fop.read(fileName);
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();
            }
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
其中,
fileName
是要从
SD卡的根目录加载的文件名

如果您想在
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;
    }
}
String fileName = input.getText().toString();
FileOperations fop = new FileOperations();
String text = fop.read(fileName);
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();
            }
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
其中,
fileName
是要从
sdcard
根目录加载的文件名,
fileContent
是要保存的文本文件的内容

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

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;
    }
}
String fileName = input.getText().toString();
FileOperations fop = new FileOperations();
String text = fop.read(fileName);
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();
            }
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


希望这有帮助

请看我下面的回答@Delafuent
WRITE\u EXTERNAL\u STORAGE
包括
READ\u EXTERNAL\u STORAGE
,因此在这种情况下后者确实没有影响。你只需要它进行只读访问。哦,我忘了。谢谢,我会更新答案:)@DerGolem