Включить локальный файл .json в проект Eclipse Android

У меня есть локальный файл .json. Я не хочу, чтобы он был на сервере, я просто хочу, чтобы он был включен в мое приложение. Я попытался вставить его непосредственно в Eclipse в моем проекте, но у меня есть FileNotFoundException, я также попытался вставить его в папку рабочей области в проводнике Windows / Finder и получил то же исключение. Где я должен это поставить?

Благодаря!

Solutions Collecting From Web of "Включить локальный файл .json в проект Eclipse Android"

Вы должны поместить файл в каталог /assets или /res/raw вашего проекта Android. Оттуда вы можете получить его с помощью: Context.getResources().openRawResource(R.raw.filename) или Context.getResources().getAssets().open("filename") .

Поместите json-файл в папку с ресурсами, я использовал этот метод, как это

 public static String jsonToStringFromAssetFolder(String fileName,Context context) throws IOException { AssetManager manager = context.getAssets(); InputStream file = manager.open(fileName); byte[] data = new byte[file.available()]; file.read(data); file.close(); return new String(data); } 

Во время разбора мы можем использовать метод:

 String jsondata= jsonToStringFromAssetFolder(your_filename, your_context); jsonFileToJavaObjectsParsing(jsondata); // json data to java objects implementation 

Дополнительная информация: Блог Prativa

Поместите файл в папку с ресурсами. Вы можете использовать AssetManager open (String fileName) для чтения файла.

Под / активы в папке проекта. Если у вас его нет, сделайте это.

Скопировать ресурс в локальное хранилище

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

 private static final String LABEL_TEMPLATE_FILE_NAME = "RJ_4030_4x3_labels.bin"; InputStream inputStreamOfLabelTemplate = getAssets().open( LABEL_TEMPLATE_ASSET_PATH ); labelTemplateFile = new File( getFilesDir() + LABEL_TEMPLATE_FILE_NAME ); copyInputStreamToFile( inputStreamOfLabelTemplate, labelTemplateFile ); printer.setCustomPaper( labelTemplateFile.getAbsolutePath() ); 

Функция copyInputStreamToFile

 // Copy an InputStream to a File. // private void copyInputStreamToFile(InputStream in, File file) { try { OutputStream out = new FileOutputStream(file); byte[] buf = new byte[1024]; int len; while((len=in.read(buf))>0){ out.write(buf,0,len); } out.close(); in.close(); } catch (Exception e) { e.printStackTrace(); } } в // Copy an InputStream to a File. // private void copyInputStreamToFile(InputStream in, File file) { try { OutputStream out = new FileOutputStream(file); byte[] buf = new byte[1024]; int len; while((len=in.read(buf))>0){ out.write(buf,0,len); } out.close(); in.close(); } catch (Exception e) { e.printStackTrace(); } }