【问题标题】:Writing and reading from txt file android从 txt 文件 android 读写
【发布时间】:2014-01-14 17:15:18
【问题描述】:

我知道这是一个广泛讨论的问题,但我对 android 开发人员手册中提供的示例感到非常困惑。 所以,我的 res/raw 文件夹中有一个“source.txt”。例如,我想在其中写两行(例如 Hello\nWorld),然后从另一个活动中读取它们。有没有人能写出这个的源代码,拜托。

【问题讨论】:

    标签: java android


    【解决方案1】:

    您应该将您的 .txt 文件替换为您的外部或内部存储。并且您必须授予从 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();
            }
    
        }
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-01-03
          • 2015-06-27
          • 1970-01-01
          相关资源
          最近更新 更多