从txt文件android编写和读取

时间:2014-01-14 17:15:19

标签: java android

我知道这是一个被广泛讨论的问题,但我对Android开发人员手册中提供的那些示例感到困惑。 所以,我的res / raw文件夹中有一个“source.txt”。例如,我想在其中写入2行(例如Hello.nWorld),然后从另一个活动中读取它们。任何人都可以为此编写源代码。

3 个答案:

答案 0 :(得分:3)

您应该将.txt文件替换为extornal或内部存储。并且您必须授予androidManifest.xml写入文本的权限

读取文件可以执行此操作

public String readFile(String filePath) {

        String jString = null;
        StringBuilder builder = new StringBuilder();

        File yourFile = new File("/sdcard/" + filepath);
        if (yourFile.exists()) {
            Log.i("file", "file founded");

            BufferedReader bufferedReader = null;
            try {
                bufferedReader = new BufferedReader(new FileReader(yourFile));
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            String row = "";

            try {
                while ((row = bufferedReader.readLine()) != null) {

                    builder.append(row + "\n");
                }

                bufferedReader.close();


            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            jString = builder.toString();
        }

        else {

            Log.i("FAIL", "FILE NOT FOUND");
        }

        return jString;
    }

写文件可以使用

public void writetoFile(String filename,String text) {

        File file = new File("/sdcard/" + filename);
        if (!file.exists())
            try {
                file.createNewFile();
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }

        FileWriter fileWriter;
        try {
//you can change second parametre true or false this is about append or clean and write
            fileWriter = new FileWriter(file, false);

            BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
            bufferedWriter.append(jsonText);

            bufferedWriter.close();

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

答案 1 :(得分:0)

您的APK文件中的任何内容都是只读,因此您无法写入存储在res/raw源文件夹中的文件,因为它仍在您的APK中。如果你想处理你的应用程序附带的文件,你需要先从APK复制到内部存储或SD卡,以便你可以改变内容。

答案 2 :(得分:0)

apk中的每个文件都是只读,因此您需要在内部存储或SD卡中创建该文件。如果您只想向第二项活动发送少量数据,则可以与意图一起发送数据或使用 sharedPreference

如果您真的想要从SD卡读取数据或从SD卡读取数据,则需要使用FileInputStream和OutputStreamWriter来读取/写入文件数据。在这里查看本教程,看看它是如何完成的。 http://www.java-samples.com/showtutorial.php?tutorialid=1523