Android загрузить локальный XML-файл - PullRequest
0 голосов
/ 19 октября 2011

Я работаю с Eclipse.Кто-нибудь знает, откуда этот кусок кода пытается получить файл?Я скопировал свои файлы в папку проекта, а также в папку srr / package_path.

public String getFromFile(ASerializer aserializer) {
    String data = new String();
    try {
    FileInputStream stream = new FileInputStream(new File(aserializer.toLocalResource()));
       FileChannel fc = stream.getChannel();
        MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size());
        /* Instead of using default, pass in a decoder. */
        data  = Charset.defaultCharset().decode(bb).toString();
        stream.close();
    }
    catch (Exception e){
        data = "File not found";
    }
    return data;
}

Ответы [ 2 ]

1 голос
/ 19 октября 2011

Этот код из-за использования FileInputStream будет интерпретировать путь к файлу как путь к файлу во всей файловой системе Android. То есть корень файловой системы будет корнем файловой системы, в которой находится вся система Android, а не где-то в ресурсах вашего приложения.

Если вы хотите загружать файлы из ресурсов приложения на основе имени файла, вы можете поместить файлы в каталог 'assets' вашего проекта приложения Eclipse и затем использовать:

InputStream inputStream = getResources().getAssets().open("file.xml");

чтобы получить InputStream файла для работы. Путь к AssetManager.open () относится к каталогу assets. Вы также можете организовать файлы в подкаталогах:

InputStream inputStream = getResources().getAssets().open("subdirectory/file.xml");
0 голосов
/ 19 октября 2011

Я думаю, что это либо папка активов, либо папка res, которую я бы предложил использовать в файловом менеджере DDMS, чтобы найти, где именно

в eclipse перейдет в DDMS, а затем перейдите на вкладку проводника файлов, где вы должны найтиприложение в data / data / package name (может быть немного не в том, что из памяти) ищет папки в имени вашего пакета

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