0

我创建了一个用于编写日志文件的类并且效果很好:

public class LogFile {

String route;
Context context;

public LogFile(Context context, String date) {
    this.context = context;
    this.route= context.getFilesDir() + "/log_"+date+".txt";
}

public void appendLog(String text){       

    File logFile = new File(ruta);

    if (!logFile.exists()){
        try{
            logFile.createNewFile();
        } 
        catch (IOException e){
            e.printStackTrace();
        }
    }
    try{
        BufferedWriter buf = new BufferedWriter(new FileWriter(logFile, true)); 
        buf.append(text);
        buf.newLine();
        buf.close();
    }
    catch (IOException e){
        e.printStackTrace();
    }
}

}

但这生成的路由是 /data/data/com.myAplication.myAplication/files/log_20130717.txt 我无法从我的设备访问这个目录。如果设备出现问题,我需要访问此文件。通过平板电脑的文件资源管理器,我可以看到以下目录:/root/data 和 /root/Android/data。android 是否有助于在这些目录中创建我的应用程序目录?否则,我试图将文件放在“sdcard/log_20130717.txt”中,但我的权限被拒绝。

你建议我做什么?

4

3 回答 3

2

把它externalFilesDir()放进去,别忘了拿android.permission.WRITE_EXTERNAL_STORAGE

于 2013-07-17T18:31:26.113 回答
1

您可以使用droidQuery API 轻松写入文件。例如,这将做你想要的:

$.write(text, FileLocation.EXTERNAL, "log_"+date+".txt", true, true);
于 2013-07-17T19:00:21.790 回答
0

到目前为止,这对我有用。经过一番研究,我发现了如何将我的数据存储在路径 /root/Android/data/ 中:

public class LogFile {

String name;
Context context;


public LogFile(Context context, String name) {

    this.context = context;
    this.name="log_"+name+".txt";

}

public void appendLog(String text){       

    File logFile = new File(context.getExternalFilesDir(null), name);


    if (!logFile.exists()){
        try{
            logFile.createNewFile();
        } 
        catch (IOException e){
            e.printStackTrace();
        }
    }
    try{
        BufferedWriter buf = new BufferedWriter(new FileWriter(logFile, true)); 
        buf.append(text);
        buf.newLine();
        buf.close();
    }
    catch (IOException e){
        e.printStackTrace();
    }
}

}

使用

File logFile = new File(context.getExternalFilesDir(null), name);

Android 会自动使用我的项目名称创建一个目录,获取: /root/Android/data/com.myAPP.myApp/files/ 。在文件中,我创建了我的自定义日志,甚至很重要,当我的应用程序被卸载时,这个目录被删除。此外,用户也可以访问此文件。

于 2013-07-17T20:18:11.250 回答