2013-04-07 2 views
1

Я новичок в разработке android, и я работаю над небольшим проектом. У меня возникла проблема с доступом к предварительно загруженным файлам.Получить предварительно загруженный файл в android

В моем приложении у меня есть файл XML, который я предварительно загрузил (просто просто поместил его в папку src в пакете). Как мне получить доступ к ним в моих классах? Мне нужно получить объект File, указывающий на этот файл, чтобы я мог использовать его, как файлы ввода/вывода. Похоже, это должно быть тривиально, но, увы, я застрял.

Допустим, файл находится в: com.app.preloadedFiles/file1.XML

Я пытался что-то вдоль линий, но не имели успеха:

URL dir_url = ClassLoader.getSystemResource("preloadedFiles/file1.XML"); 
FIle file = new File(dir_url.toURI()); 
+0

ли вам обязательно нужен объект File, будет InputStream быть достаточно, если так, а не с помощью ClassLoader я хотел бы предложить, используя кнопку [AssetManager] (http://developer.android.com/reference /android/content/res/AssetManager.html), предоставленные вам в SDK для Android. Это простой класс, который вы используете, вам просто нужно создать папку под названием «активы». –

+0

Мне нужно, чтобы это был файл. У меня есть ряд функций, связанных с файловыми объектами и связанными с ним операциями, и было бы большой проблемой обновить их для InputStreams. – Tesla

ответ

1

I решил это в моем приложении путем получать InputStream в файл - что-то вроде:

myContext.getAssets().open(fileName); 
//read the data and store it in a variable 

Затем, если вы действительно должны сделать File связанные opterations с ним, вы можете записать его в ПОИ vate (или общедоступный) и выполняйте свои операции из недавно записанного файла. Что-то вроде:

File storageDir = myContext.getDir(directoryName, Context.MODE_PRIVATE); 
File myFile = new File(storageDir + File.separator + fileName); 
//then, write the data to the file and manipulate it -- store the name for access via File later