Интерфейс Android IO File Class - PullRequest
       0

Интерфейс Android IO File Class

1 голос
/ 30 ноября 2010

Я немного прочитал API для File IO и прочитал следующее сообщение в блоге: http://techknock.blogspot.com/2008/05/file-hadling-in-android.html. Его код отлично работает, когда все в одной и той же активности.Но я пытаюсь создать класс IOInterface, который я могу использовать для открытия нескольких баз данных для заполнения нескольких списков.

ListA.java

public class ListA
{
    public List<ClassA> list;
    private final String DBA = "dbA";
    private IOInterface database;

    public List()
    {
        list = new ArrayList<ClassA>();
        database = new IOInterface();
    }

    ...

    public void initListA() throws IOException
    {
        database.openForWriting(DBA);

        String myStr = new String("content");
        database.dos.writeBytes(myStr);
        database.dos.flush();
        database.dos.close();
    }
}

IOInterface.java

public class IOInterface
{
    public DataOutputStream dos;
    private FileOutputStream fos;

    public void openForWriting(String database)
    {
        try {
            fos = openFileOutput(database, Content.MODE_PRIVATE);
            dos = new DataOutputStream(fos);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

Eclipse подчеркивает fos = openFileOutput(database, Content.MODE_PRIVATE);.С комментарием, что openFileOutput() не существует.Решение этой проблемы заключается в расширении класса IOInteface как Activity.Полагаю, тогда openFileOutput() является методом класса деятельности.

Так что мой вопрос в том, как выполнить то, что я пытаюсь сделать?Стандартный файл Java, такой как:

File fp = new File("database");
FileOutputStream fos = new FileOutputStream(fp);

, не работает.Это ловит FileNotFoundException.Это должно быть выполнимо, хотя.Есть идеи?

Спасибо,

1 Ответ

5 голосов
/ 30 ноября 2010

Метод openFileOutput() содержится в классе Context, поэтому вы можете передать экземпляр этого класса в ваш метод, который открывает файлы. И вы всегда должны использовать методы из Context, когда хотите работать с файлами.

Об использовании внутренних и внешних хранилищ можно прочитать в руководстве по разработке .

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