Где я должен сохранить свой файл в Android для локального доступа? - PullRequest
0 голосов
/ 01 апреля 2019

У меня есть два набора данных, которые в настоящее время находятся в той же папке, что и мои файлы Java, и на моем ПК. В настоящее время я обращаюсь к ним через мой C-диск. Так как это приложение, где я должен сохранять свои файлы .ARFF и какой путь я должен использовать вместо этого? Я пытался в сырой папке, но ничего не работает.

Вот что у меня есть ... Current Code Hierarchy

Ответы [ 2 ]

2 голосов
/ 01 апреля 2019

Создайте каталог raw в вашем проекте, raw включается в папку res проекта android. Вы можете добавить файлы ресурсов в необработанную папку, такие как музыкальные файлы, файлы базы данных или текстовые файлы или некоторые другие файлы, к которым вам нужен прямой доступ

1) Щелкните правой кнопкой мыши по папке res, выберите New> Directory, затем студия откроет диалоговое окно и попросит вас ввести имя.

2) Введите «raw» и нажмите «ОК». Откройте папку res, и вы найдете в ней папку raw.

InputStream input = Context.getResources().openRawResource(R.raw.your_file_name);

// Пример чтения файла из директории raw

private String readFileFromRawDirectory(int resourceId)
{
InputStream iStream = context.getResources().openRawResource(resourceId);
ByteArrayOutputStream byteStream = null;
try {
byte[] buffer = new byte[iStream.available()];
iStream.read(buffer);
byteStream = new ByteArrayOutputStream();
byteStream.write(buffer);
byteStream.close();
iStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return byteStream.toString();
}
}
1 голос
/ 01 апреля 2019

Через слишком много часов

Очень простое решение для извлечения данных из папки активов! Только один пользовательский метод.

  1. Сделать папку raw в каталоге res.
  2. Вставьте любые файлы в raw directory
  3. Создайте отдельный .java файл
  4. Убедитесь, что это производный класс (в данном случае он расширен AppCompatActivity
  5. Написать часть A в теле
  6. Написать часть B вне тела

A. Это функция main ИЛИ пользовательская функция user-defined.

BufferedReader bReader;            
bReader = new BufferedReader(
           new InputStreamReader(ISR(R.raw.FILENAME_WITHOUT_TYPE)));

FILENAME_WITHOUT_TYPE относится только к имени файла, а не к его окончанию (за ним следует . ).

B. Это определение ISR.

public InputStream ISR(int resourceId) {
    InputStream iStream = getBaseContext().getResources().openRawResource(resourceId);
    return iStream;
}

Работает как шарм!

Ресурсы:

...