2016-03-01 3 views
0

Я нахожу код, который использует сериализованный файл. Файл называется alcala.ser и находится в utils, подкатегория java. Класс, вызывающий файл, находится в одной папке. Вот код:Ссылка на файл в студии android

InputStream file = new FileInputStream("/alcala.ser"); 

Я также попытался:

InputStream file = new FileInputStream("alcala.ser"); 

В обоих случаях я получаю

java.io.FileNotFoundException: /alcala.ser: открыть не удалось: ENOENT (Нет такой файл или справочник)

Как следует ссылаться на fi ле?

Заранее спасибо.

+0

'/ alcala.ser' был бы корнем устройства ... Я сомневаюсь, что ваш файл существовал бы там, потому что доступ на запись не разрешен. –

+0

Вы должны [создать папку' assets'] (http: // stackoverflow .com/a/27673773/2308683) для хранения ваших файлов. –

ответ

1

Файл называется alcala.ser и находится в utils, подпапке java.

Переместить файл оттуда и в assets/. Затем используйте AssetManager до open() a InputStream по активу.

+0

Но я не могу ссылаться на «нестатический» метод из «статического» контекста ... любые идеи? –

+1

@DanielHurtadoRamirez: Если этот метод является 'open()', вы получаете экземпляр 'AssetManager', вызывая' getAssets() 'в' Context', например 'Activity' или' Service'. – CommonsWare

Смежные вопросы