Чтение XML-файла с SDCard - PullRequest
       12

Чтение XML-файла с SDCard

4 голосов
/ 13 февраля 2012

У меня есть один xml-файл с именем bkup.xml, хранящийся внутри sdcard "/sdcard/bkup.xml".

Для создания bkup.xml я использовал xmlSerialization.

Я хочу получитьданные из этого файла bkup.xml.

Я видел много примеров, но почти большинство из них используют файл ресурсов и используют URL в качестве ресурса.Но ни у кого нет примера указания пути к файлу SDCard.

Я не знаю, как извлечь данные из этого файла и проанализировать его.

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

Любое предложение будет оценено

Ответы [ 2 ]

5 голосов
/ 13 февраля 2012

Here - полный пример с источником.Вы просто получите File, используя

 File file = new File(Environment.getExternalStorageDirectory()
                    + "your_path/your_xml.xml");

Затем выполните дальнейшую обработку.

ОБНОВЛЕНИЕ

Если вам нужен пример для different типы XML Parsers вы можете download complete пример из here.

0 голосов
/ 13 февраля 2012

Используйте объект FileReader следующим образом:

/**
  * Fetch the entire contents of a text file, and return it in a String.
  * This style of implementation does not throw Exceptions to the caller.
  *
  * @param aFile is a file which already exists and can be read.
  * File file = new File(Environment.getExternalStorageDirectory() + "file path");
  */
  static public String getContents(File aFile) {
    //...checks on aFile are elided
    StringBuilder contents = new StringBuilder();

    try {
      //use buffering, reading one line at a time
      //FileReader always assumes default encoding is OK!
      BufferedReader input =  new BufferedReader(new FileReader(aFile));
      try {
        String line = null; //not declared within while loop
        /*
        * readLine is a bit quirky :
        * it returns the content of a line MINUS the newline.
        * it returns null only for the END of the stream.
        * it returns an empty String if two newlines appear in a row.
        */
        while (( line = input.readLine()) != null){
          contents.append(line);
          contents.append(System.getProperty("line.separator"));
        }
      }
      finally {
        input.close();
      }
    }
    catch (IOException ex){
      ex.printStackTrace();
    }

    return contents.toString();
  }

Также вам необходимо добавить разрешение для доступа к SDCard на устройстве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...