![](/img/trans.png)
[英]java.io.FileNotFoundException: open failed: ENOENT (No such file or directory)
[英]Android - java.io.FileNotFoundException open failed: ENOENT (No such file or directory)
我正在嘗試代碼一個Android應用程序,它將解析.owl文件(OWL文件)並顯示類和子類。 當我嘗試打開文件時,我不斷收到以下異常。
02-22 18:48:40.421: W/System.err(535): java.io.FileNotFoundException: /Antibiotics.owl: open failed: ENOENT (No such file or directory)
02-22 18:48:40.431: W/System.err(535): at libcore.io.IoBridge.open(IoBridge.java:406)
02-22 18:48:40.431: W/System.err(535): at java.io.FileInputStream.<init>(FileInputStream.java:78)
02-22 18:48:40.431: W/System.err(535): at com.Sample.SampleApp.StartingPoint.parseOWLFile(StartingPoint.java:102)
02-22 18:48:40.431: W/System.err(535): at com.Sample.SampleApp.StartingPoint$3.onClick(StartingPoint.java:66)
這是我的Android代碼:
import java.io.File;
import java.io.FileInputStream;
import java.util.Iterator;
import com.hp.hpl.jena.ontology.Individual;
import com.hp.hpl.jena.ontology.OntClass;
import com.hp.hpl.jena.ontology.OntModel;
import com.hp.hpl.jena.ontology.OntModelSpec;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.Resource;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.content.Intent;
import android.os.Bundle;
public class StartingPoint extends ActionBarActivity {
private static final int REQUEST_PATH = 1;
String currentFile;
EditText et1;
Button browse, ok, exit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
et1 = (EditText)findViewById(R.id.editText);
browse = (Button) findViewById(R.id.browseButton);
browse.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v)
{
getfile(v);
}
});
exit = (Button)findViewById(R.id.ExitButton);
exit.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v)
{
Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
}
});
ok = (Button)findViewById(R.id.OKButton);
ok.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v)
{
parseOWLFile();
}
});
}
public void getfile(View view)
{
Intent i1 = new Intent(this, FileChooser.class);
startActivityForResult(i1, REQUEST_PATH);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(requestCode == REQUEST_PATH)
{
if(resultCode == RESULT_OK)
{
currentFile = data.getStringExtra("GetFileName");
et1.setText(currentFile);
}
}
}
public void parseOWLFile()
{
//String file = et1.getText().toString(); //Uncomment this when using on phone/tablet
String file = "Antibiotics.owl";
try
{
//System.out.println("File name is "+file);
File f = new File(file);
System.out.println("File name is "+f.toString());
FileInputStream fis = new FileInputStream(f);
OntModel base = ModelFactory.createOntologyModel( OntModelSpec.OWL_DL_MEM );
base.read(fis, null);
String ns = base.getNsPrefixURI("Ontology");
Resource r = base.getResource(ns+" Concept");
OntClass theClass = r.as(OntClass.class);
Individual indiv = base.createIndividual(ns+"IndivTest", theClass);
for (Iterator<Resource> i = indiv.listRDFTypes(true); i.hasNext(); )
System.out.println( indiv.getURI() + " is asserted in class " + i.next() );
OntModel inf = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM_MICRO_RULE_INF, base );
Individual ind = inf.getIndividual( ns + "indivTest" );
for (Iterator<Resource> i = ind.listRDFTypes(true); i.hasNext(); )
System.out.println( ind.getURI() + " is inferred to be in class " + i.next() );
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
我在項目的父目錄中有“Antibiotics.owl”文件。 我正在模擬器上運行Project。
如何擺脫此異常並解析OWL文件? 我還是Android編程的初學者。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.