Android, как получить доступ к исходным ресурсам, которые я установил в папку res?

В J2ME я делаю это так: getClass().getResourceAsStream("/raw_resources.dat");

Но в андроиде я всегда получаю нулевое значение, почему?

 InputStream raw = context.getAssets().open("filename.ext"); Reader is = new BufferedReader(new InputStreamReader(raw, "UTF8")); 

Для сырых файлов вам следует рассмотреть возможность создания исходной папки внутри каталога res, а затем вызвать getResources().openRawResource(resourceName) из вашей активности.

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

 // Image View Object mIv = (ImageView) findViewById(R.id.xidIma); // create context Object for to Fetch image from resourse Context mContext=getApplicationContext(); // getResources().getIdentifier("image_name","res_folder_name", package_name); // find out below example int i = mContext.getResources().getIdentifier("ic_launcher","raw", mContext.getPackageName()); // now we will get contsant id for that image mIv.setBackgroundResource(i); 
 TextView txtvw = (TextView)findViewById(R.id.TextView01); txtvw.setText(readTxt()); private String readTxt() { InputStream raw = getResources().openRawResource(R.raw.hello); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); int i; try { i = raw.read(); while (i != -1) { byteArrayOutputStream.write(i); i = raw.read(); } raw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return byteArrayOutputStream.toString(); } 

TextView01 :: txtview в файле linearlayout hello :: .txt в папке res / raw (вы также можете открыть любую папку othr)

Ist 2 строки 2 написаны в методе onCreate ()

rest должен быть написан в classе, расширяющем Activity !!

getClass().getResourcesAsStream() отлично работает на Android. Просто убедитесь, что файл, который вы пытаетесь открыть, правильно встроен в ваш APK (откройте APK как ZIP).

Обычно на Android вы помещаете такие файлы в каталог assets . Поэтому, если вы поместите raw_resources.dat в подкаталог assets вашего проекта, он окажется в каталоге assets в APK, и вы можете использовать:

 getClass().getResourcesAsStream("/assets/raw_resources.dat"); 

Также можно настроить процесс сборки, чтобы файл не попадал в каталог assets в APK.

InputStream in = getResources (). OpenRawResource (resourceName);

Это будет работать правильно. До этого вам нужно создать файл / текстовый файл xml в raw-ресурсе. Тогда он будет доступен.

редактировать
В некоторых случаях com.andriod.R будет импортироваться, если в файле макета или имени изображения есть ошибка. Поэтому вам нужно правильно импортировать пакет, тогда будет доступен только исходный файл.

В предварительном подходе используется функция расширения Kotlin

 fun Context.getRawInput(@RawRes resourceId: Int): InputStream { return resources.openRawResource(resourceId) } 

Еще одна интересная вещь – использование функции расширения, которая определена в Closeable scope

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

 fun Context.readRaw(@RawRes resourceId: Int): String { return resources.openRawResource(resourceId).bufferedReader(Charsets.UTF_8).use { it.readText() } } 
  • Получение шаблонов / файлов Facelets из внешней файловой системы или базы данных
  • Загружать конкретную строку языка из ресурса?
  • В чем разница между StaticResource и DynamicResource в WPF?
  • Программно изменить значение цветового ресурса, полученного из ответа API
  • Встраивание ресурсов (изображений, звуковых fragmentов и т. Д.) В проект Java, затем использование этих ресурсов
  • Как ссылаться на ресурс CSS / JS / image в шаблоне Facelets?
  • Доступ к файлам ресурсов на Android
  • Доступ к сетевому ресурсу из VBScript, например, FileSystemObject
  • Вставить текстовый файл в ресурс в собственном приложении Windows
  • Причина для активов и ресурсов в Android
  • Что такое библиотека ресурсов JSF и как ее использовать?
  • Давайте будем гением компьютера.