Чтение xml-файла с SD-карты не работает

Я пытаюсь прочитать XML-файл с SD-карты, но он не работает. Загружается пустая активность, а TextView пуст. если я удалю код для чтения xml и просто установлю текст как t.setText("hello"); он отлично работает

код здесь.

     public void onCreate(Bundle savedInstanceState) {


     super.onCreate(savedInstanceState);


     setContentView(R.layout.activity_sdcard1);


     TextView t;


     t=(TextView) findViewById(R.id.T1);


     try{


          File f = new File(Environment.getExternalStorageDirectory()+"/page1.xml");


          InputStream fileIS = new FileInputStream(f);


          // InputStreamReader input= new InputStreamReader(fileIS);


          xpp.setInput(fileIS,"UTF-8");


          eventType = xpp.getEventType();


          while (eventType != XmlPullParser.END_DOCUMENT){


             if(eventType == XmlPullParser.TEXT) {
                          t.setText(t.getText()+xpp.getText());
                  }
         }


       } catch (FileNotFoundException e1) {


            e1.printStackTrace();


       } catch (XmlPullParserException e) {


        // TODO Auto-generated catch block


        e.printStackTrace()
       }

    }

<?xml version="1.0" encoding="UTF-8"?>

<page1>

<Text1>Hello.</Text1>

<Text2>World!</Text2>

</page1>

и файл xml в sdcard/page1.xml я пробовал разными способами, но не работает. Благодарность ...

Я обнаружил, что теперь мне нужно написать две строки кода внутри цикла while

    eventType = xpp.next();


    eventType = xpp.getEventType();

Теперь работает Отлично! Спасибо за помощь....


person mahesh    schedule 01.03.2013    source источник
comment
Что значит не работает? Какая у вас проблема? Какой у Вас вопрос?   -  person Simon    schedule 01.03.2013
comment
Я прочитал текстовый файл с SD-карты и успешно отобразил его в приведенном выше TextView t; Но чтение из page1.xml через pullparser дает пустую страницу. это означает, что TextView t пуст   -  person mahesh    schedule 01.03.2013


Ответы (2)


Попробуйте прочитать файл, используя следующий код:

     File myFile = new File("/sdcard/page1.xml");
        FileInputStream fIn = new FileInputStream(myFile);
        BufferedReader myReader = new BufferedReader(
                new InputStreamReader(fIn));
        String aDataRow = "";
        String aBuffer = "";
        while ((aDataRow = myReader.readLine()) != null) {
            aBuffer += aDataRow + "\n";
            Log.d("File Is DATA:===>",aBuffer.toString());
        }
        myReader.close();
        Toast.makeText(getBaseContext(),
                "Done reading SD 'page1.xml'",
                Toast.LENGTH_SHORT).show();
    } catch (Exception e) {
        Toast.makeText(getBaseContext(), e.getMessage(),
                Toast.LENGTH_SHORT).show();
    }
person GrIsHu    schedule 01.03.2013
comment
Пожалуйста, не публикуйте ответы только с кодом. Как это отвечает на вопрос. Почему это лучше, чем код OP? - person Simon; 02.03.2013

person    schedule
comment
Пожалуйста, не публикуйте ответы только с кодом. Как это отвечает на вопрос. Почему это лучше, чем код OP? - person Simon; 02.03.2013