我正在尝试从资产文件夹中读取相同的文件“ xmlfile.xml ”,并尝试从SD卡读取另一个副本 sdcard / download /
我可以从SD卡读取:
我无法从Assets文件夹中读取:
此代码不能正常工作
File source = new File("file:///android_asset/xmlfile.xml");
boolean unfile = source.isFile();
boolean Esiste = source.exists();
try
{
// todo
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
此代码工作
File source = new File("/sdcard/" + "download" + "/" + "xmlfile.xml");
boolean unfile = source.isFile();
boolean Esiste = source.exists();
try
{
// todo
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
有人可以解释我如何从Assets文件夹中读取文件。
感谢 马可
答案 0 :(得分:12)
要打开资产,您需要以下代码:
InputStream is = getAssets().open("xmlfile.xml")
答案 1 :(得分:7)
使用此功能
// Converting given XML file name to String form
String mOutputText = getxml("yourxml.xml");
/**
* Function used to fetch an XML file from assets folder
* @param fileName - XML file name to convert it to String
* @return - return XML in String form
*/
private String getXml(String fileName) {
String xmlString = null;
AssetManager am = context.getAssets();
try {
InputStream is = am.open(fileName);
int length = is.available();
byte[] data = new byte[length];
is.read(data);
xmlString = new String(data);
} catch (IOException e1) {
e1.printStackTrace();
}
return xmlString;
}
答案 2 :(得分:0)
try
{
AssetManager aManager = Class.getAssets();
InputStream iStream = aManager.open("file.xml");
int length = iStream.available();
byte[] data = new byte[length];
iStream.read(data);
assetString = new String(data).toString();
}
catch (IOException e)
{
e.printStackTrace();
}
答案 3 :(得分:0)
这肯定会对你有所帮助。
要读取文件表单资源文件夹,您需要InputStream
对象。
语法:
InputStream yourobj=getApplicationContext().getAssets().open("Path to xml file");
因此实时代码可以是:
InputStream in_s = getApplicationContext().getAssets().open("www/application/app/client/controllers/data1.xml");
此处data1.xml
是路径中的文件。
答案 4 :(得分:0)
我发现更容易执行以下操作:
val xmlStream = context.resources.getXml(R.xml.example)
我相信这是XmlPullParser的子集,但是效果很好。