Вот мой сценарий.Как получить XML-файл из активов через поток в Android?
Я MainActivity.java
, в котором я звоню нить как этот
private void callXMLParserThread() {
String filePath = "file:///android_asset/weather_conditions.xml";
parserThread = new XMLParserThread(context, filePath);
parserThread.start();
}
и вот мой XMLParserThread.java
public class XMLParserThread extends Thread {
Context context;
String fileName;
XMLParser xmlParser;
public XMLParserThread(Context context, String fileName) {
this.context = context;
this.fileName = fileName;
}
@Override
public void run() {
xmlParser = new XMLParser();
String xmlResponse = null;
try {
xmlResponse = xmlParser.getXmlFromFile(context, fileName);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.d("xmlResponse", xmlResponse + "");
super.run();
}
}
Примечание: В перспективе() метод, который я звоню в другой метод getXmlFromFile()
проживает в XMLParser.java
Теперь здесь мой getXmlFromFile()
способ.
public String getXmlFromFile(Context context, String fileName) throws IOException {
Log.e("fileName", fileName);
InputStream is = null;
try {
is = context.getAssets().open(fileName);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayOutputStream buf = new ByteArrayOutputStream();
int result = bis.read();
while(result != -1) {
byte b = (byte)result;
buf.write(b);
result = bis.read();
}
return buf.toString();
}
Проблема
Когда я выполняю код он бросает java.io.FileNotFoundException: file:///android_asset/weather_conditions.xml at xml.parser.XMLParser.getXmlFromFile(XMLParser.java:43)
, где линия не 43 is = context.getAssets().open(fileName);
в моем getXmlFromFile()
методе
Кроме того, я уверен, что файл существует в папке с ресурсами. Где я ошибаюсь?
Где находится папка? Я думаю, что ваш путь является абсолютным, но если я не ошибаюсь, приложения не могут получить доступ к корневой папке. Вы можете взглянуть на документацию: http://developer.android.com/training/basics/data-storage/files.html –