Android 写入用户可读文件

Android 写入用户可读文件,android,file,Android,File,我正在将值写入数据库,并停止它进行评估所需的时间。 现在,我想将这些时间写入一个易于访问的文件,如.txt,但我无法在手机上写入(互联网上的一些回答说,因为它是作为“媒体源”连接的,但当我断开连接时,我无法再连接到eclipse)。 因此,问题是:我如何编写一个文件,我可以简单地将其从手机复制到电脑,以获取数据进行分析。您可以使用以下功能,文本是您的内容: public void backUp(String text,String namefile) { File file

我正在将值写入数据库,并停止它进行评估所需的时间。 现在,我想将这些时间写入一个易于访问的文件,如.txt,但我无法在手机上写入(互联网上的一些回答说,因为它是作为“媒体源”连接的,但当我断开连接时,我无法再连接到eclipse)。
因此,问题是:我如何编写一个文件,我可以简单地将其从手机复制到电脑,以获取数据进行分析。

您可以使用以下功能,
文本是您的内容:

public void backUp(String text,String namefile)
{       
   File file = new File(Environment.getExternalStorageDirectory()+"/yourdir/"+namefile+".txt");
   if (!file.exists())
   {
      try
      {
          file.createNewFile();
      } 
      catch (IOException e)
      {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
   }
   try
   {
      //BufferedWriter for performance, true to set append to file flag
      BufferedWriter buf = new BufferedWriter(new FileWriter(file, true)); 
      buf.append(text);
      buf.newLine();
      buf.close();
   }
   catch (IOException e)
   {
      // TODO Auto-generated catch block
      e.printStackTrace();
   }
}

更新:

在使用上述功能之前,应先创建目录:

    File  yourdir = new File(Environment.getExternalStorageDirectory()+"/yourdir");
    if(!yourdir.exists()){
        yourdir.mkdir();
    }
然后:

backUp("hello world", "test");
不要忘记此权限:

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


这导致了所描述的问题:open失败:enoint(没有这样的文件或目录),当我使用“Environment.getExternalStorageState()”时,它说挂载了,当我断开连接时MTP eclipse找不到它…所以我将它改为:

file yourdir=new file(Environment.getExternalStorageDirectory()+“/yourdir”)
如果(!yourdir.exists()){
yourdir.mkdir();
}
文件文件=新文件(Environment.getExternalStorageDirectory()+“/yourdir/”+“test”+“.txt”)

,错误消失。
但当我尝试使用
环境.getExternalStorage().getAbsolutePath()时,它返回/`storage/emulated/0作为路径。我觉得自己有点傻,但怎么回事?对不起,糟糕的格式化。。。不会说帮助有帮助:DIt是正确答案,只是需要重新启动手机,以便在“内部”存储上创建“外部”存储。。。或者这一次做得太愚蠢了。一个好方法是使用MediaScannerConnection.scan文件让用户可以立即更新所有内容。但现在还有一个问题:我只能在活动线程中执行此操作吗?我如何从另一个线程写入日期(我想“停止”我的数据线程生成新数据,这样如果写入文件速度变慢,事件队列中就不会丢失任何数据)?“我如何从另一个线程写入日期”。您需要创建AsyncTask或IntentService类,请执行以下操作: