如何在外部存储中保存,读取和写入android中的文件?

时间:2013-06-15 17:32:31

标签: java android file sd-card

我正在尝试了解如何使用Android中的文件

我在外部存储中安装了我的Android应用程序

它包含运行时需要的文件夹data ...

首先我认为我的文件夹会在安装

时自动保存在SD卡中

但在阅读了一些问题之后,似乎我应该创建一个文件夹来保存我的

文件夹data ...

我写这个问题,询问有关实现目标的步骤,我需要你的进步

目标

  • 将文件夹data保存在外部存储中,从中读取并写入新文件

步骤

  • 添加清单文件的权限

  • 在sdcard中创建一个文件夹==>如何将我的文件夹放在那里?

  • 创建一个新文件,将其保存在SD卡上并写入

这是我活动的一部分:

    {
      ....
       File file = new File ("...")

       doPrediction(file);


}

private void doPrediction (String FileName)

        {

     for (File child : VisualModels.listFiles()) {


     svmPredict.run(MyDataSource.inputPrediction,

         new File( MyDataSource.outputPrediction+ "/"+child.getName()+".predict"), 

         child);
          }
        }

我将类svmPredict声明为任何普通的java类,这是run method的代码

       try 
    {
        BufferedReader input = new BufferedReader(new FileReader(inputFile));
        DataOutputStream output = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(outputFile)));
        svm_model model = new svm().svm_load_model(modelFile);
        if(predict_probability == 1)
        {
            if(svm.svm_check_probability_model(model)==0)
            {
                System.err.print("Model does not support probabiliy estimates\n");
                System.exit(1);
            }
        }
        else
        {
            if(svm.svm_check_probability_model(model)!=0)
            {
                svm_predict.info("Model supports probability estimates, but disabled in prediction.\n");
            }
        }
        predict(input,output,model,predict_probability);
        input.close();
        output.close();
    } 

1 个答案:

答案 0 :(得分:0)

请阅读Android documentation regarding External Storage

注意getExternalFilesDir()。您可以使用此方法检索外部存储的路径。 获得路径后,可以使用File对象在外部存储上创建数据文件夹,如下所示:

File dataDirectory = new File(getExternalFilesDir() + "/data/");

然后通过在File对象上应用mkdirs() - 方法创建文件夹:

dataDirectory.mkdirs();

要写入外部存储,您确实必须在清单中声明:

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