java在android中加载owl文件

3wabscal  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(425)

我知道这个问题以前问过,但现在没有合适的解决办法,所以我要再问一遍。如何在android项目中加载owl文件?
这些代码在java中工作,但在android中没有用。当我在android项目中尝试它们时,文件就无法访问了。我使用的是owlapi3.4.10。我正在从mainactivity类加载本体。加载在ontologyclass类中的loadontology方法中执行。在主要方法中,编码如下

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
        ontologyClass ontology;

            ontology = new ontologyClass();

        try {
            ontology.ontologyLoad();

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

ontologyclass的编码如下:

@Ignore
@SuppressWarnings("javadoc")
public class ontologyClass {
OWLOntology pizza;
OWLOntologyManager manager;

public ontologyClass  ontologyLoad() throws  OWLOntologyCreationException {

     manager= OWLManager.createOWLOntologyManager();
    File file= new File("assets/Pizza.owl");
    pizza = manager.loadOntologyFromOntologyDocument(file);
     return this;
}

pizza.owl文件位于assets文件夹中。在logcat中,我收到如下警告
filenotfountexception:/assets/pizza.owl:打开failed:enoent (没有这样的文件或目录)
有人能解决这个文件加载问题吗?
谢谢

q1qsirdb

q1qsirdb1#

处理构建路径错误:通常,如果您在java中使用owlapi,那么您所需要的只是导入owlapi库。但在android中,如果你只这样做,你仍然会得到错误声明“methodnotfound”。因此,您需要执行第二步,即右键单击您的android项目,然后
属性->java构建路径->订单和导出选项卡
这里选中了owlapi3.4.10.jar
assets文件夹中的文件路径的答案如下:
asserts文件夹中WL文件的目录/路径可以通过inputstream类访问,而file类不适用于此文件夹,因此不使用 File file= new File("assets/Pizza.owl"); 使用此代码

InputStream is= myContext.getAssets().open("Pizza.owl");

最后使用的inputstream示例是,这表示资产文件夹ie中文件的正确路径

pizza = manager.loadOntologyFromOntologyDocument(is);

相关问题