2017-02-20 19 views
1

enter image description hereКак я могу получить файл в корневой папке моего кода приложения для Android через код?

Я хочу получить ссылку на файл config.json.

+0

Эти файлы существуют на вашей машине разработки. Их не будет на устройстве/эмуляторе Android. –

+0

@MikeM. Тогда как Firebase получает свою информацию из аналогичного файла? – hemant3370

+0

http://stackoverflow.com/questions/39626455/android-how-to-get-the-root-directory-from-a-file-path –

ответ

1

Измените файл местоположения config.json и поместите файл в папку «res/raw». По умолчанию «необработанная» папка не создается в андроиде proyect (вы должны создавать его вручную).

В заключение разместите ваш json-файл в файле «res/raw/config.json». Позже, вы можете прочитать этот файл в коде с помощью следующей функции:

public String streamToString(InputStream in) { 
    String l; 
    BufferedReader r = new BufferedReader(new InputStreamReader(in)); 
    StringBuilder s = new StringBuilder(); 
    try { 
     while ((l = r.readLine()) != null) { 
      s.append(l); 
     } 
    } catch (IOException e) { 
    } 
    return s.toString(); 
} 

Теперь вы можете использовать предыдущую функцию, чтобы прочитать любой файл из папки Реза. В этом случае вы можете использовать следующий код для чтения «config.json» и получить строку с содержимым файла:

//Function getResources() must be called from a Context Activity or Aplication 
InputStream rawResourceConfig = getResources().openRawResource(R.raw.config); 
String contentConfig = streamToString(rawResourceConfig); 

Теперь у вас есть в contentConfig все содержимое файла config.js как String.

Наконец, вы можете использовать библиотеку GSON (например) для преобразования строки JSON в объект Java.

Я надеюсь, что это было надеемся.

Удачи.

0

Как я могу получить файл в корневой папке моего кода приложения для Android через код?

У вас нет. Инструменты сборки не упаковывают случайные файлы из случайных мест в ваш APK. Файл config.json отсутствует в вашем APK.

Используйте assets/ или res/raw/, чтобы упаковать произвольный контент с помощью вашего приложения.