gpt4 book ai didi

android - 如何将android路径字符串获取到 Assets 文件夹中的文件?

转载 作者:IT老高 更新时间:2023-10-28 13:23:23 26 4
gpt4 key购买 nike

我需要知道 assets 文件夹中文件的 字符串路径,因为我使用的 map API 需要接收字符串路径,并且我的 map 必须存储在 assets 文件夹中

这是我正在尝试的代码:

    MapView mapView = new MapView(this);
mapView.setClickable(true);
mapView.setBuiltInZoomControls(true);
mapView.setMapFile("file:///android_asset/m1.map");
setContentView(mapView);

"file:///android_asset/m1.map" 出了点问题,因为 map 没有被加载。

存储在我的 Assets 文件夹中的文件 m1.map 的正确字符串路径文件是什么?

谢谢

为 Dimitru 编辑:此代码不起作用,它在 is.read(buffer); 上失败并带有 IOException

        try {
InputStream is = getAssets().open("m1.map");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
text = new String(buffer);
} catch (IOException e) {throw new RuntimeException(e);}

最佳答案

AFAIK Assets 目录中的文件不会被解压。相反,它们是直接从 APK (ZIP) 文件中读取的。

所以,你真的不能让期望 file 的东西接受 Assets "file"。

相反,您必须提取 Assets 并将其写入单独的文件,就像 Dumitru 建议的那样:

  File f = new File(getCacheDir()+"/m1.map");
if (!f.exists()) try {

InputStream is = getAssets().open("m1.map");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();


FileOutputStream fos = new FileOutputStream(f);
fos.write(buffer);
fos.close();
} catch (Exception e) { throw new RuntimeException(e); }

mapView.setMapFile(f.getPath());

关于android - 如何将android路径字符串获取到 Assets 文件夹中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8474821/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com