Как включить файл статического журнала в приложение Android, которое не будет удалено при закрытии приложения? - PullRequest
0 голосов
/ 03 ноября 2011

Я хочу включить статический файл журнала в мое приложение.Каждый раз, когда пользователь запускает приложение, к этому файлу добавляется время с дополнительной информацией.Вначале я думал, что решением будет сохранение файла в папке активов или в папке raw, но затем я изучил документацию для Android , где указано:

Совет. Если выЕсли вы хотите сохранить статический файл в вашем приложении во время компиляции, сохраните файл в вашем каталоге res / raw /.Вы можете открыть его с помощью openRawResource (), передавая R.raw.идентификатор ресурса.Этот метод возвращает InputStream, который вы можете использовать для чтения файла (, но вы не можете записать в исходный файл ).

Как решить эту проблему?

РЕДАКТИРОВАНИЕ:

Я хочу, чтобы файл журнала не удалялся при закрытии приложения.

Ответы [ 3 ]

1 голос
/ 04 ноября 2011

Вместо включения файла журнала в приложение, вы должны создать его при первом запуске.

Там больше информации Как создать файл в Android? при создании файла.

0 голосов
/ 04 ноября 2011

Вот решение:

private void writeLog(String s)
{
    String FILENAME = "log.txt";
    FileOutputStream fos = null;
    try
    {
        fos = openFileOutput(FILENAME, Context.MODE_APPEND);
        fos.write(s.getBytes());
    }
    catch(FileNotFoundException e){}
    catch(IOException e){}
    finally
    {
        try
        {
            fos.close();
        }
        catch(IOException e){}
    }
}
private void readLog(EditText logs)
{
    String FILENAME = "log.txt";
    FileInputStream in = null;
    try
    {
        in = openFileInput(FILENAME);
    }
    catch(IOException e1){}
    try
    {
        byte[] buffer = new byte[4096]; // Read 4K characters at a time.
        int len;
        logs.setText("");
        while((len = in.read(buffer)) != -1)
        {
            String s = new String(buffer, 0, len);
            logs.append(s);
        }
    }
    catch(IOException e){}
    finally
    {
        try
        {
            if(in != null) in.close();
        }
        catch(IOException e){}
    }
}
0 голосов
/ 04 ноября 2011

Ну, я не вижу проблемы, ваш пользователь откроет приложение, и оно будет runtime , и вы сможете написать что угодно в любой файл Так что этот совет не относится к вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...