使用Java

时间:2018-07-23 17:59:06

标签: java rdf jena

list1[0]更改为list1[1]时遇到的错误:

enter image description here

我正在做一个程序,使用Java中的RDF模型从文件打印,我想让该对象成为Sting,但我找不到解决方法,我尝试使用2- d数组让它从文件中读取并将数据打印到输出屏幕中。但是,它不起作用,我无法弄清原因。

这是我的代码:

String synonyms =null;

try {
        File file1 = new File("Data/9687.txt");
        FileReader fileReader1 = new FileReader(file1);
        BufferedReader bufferedReader1 = new BufferedReader(fileReader1);
        StringBuffer stringBuffer = new StringBuffer();
        String line1;
        System.out.println("Proteins & Synonyms:");
        while ((bufferedReader1.readLine()) != null) {
                line1 = bufferedReader1.readLine();
                String[] list1 = line1.split(“/t”)
                synonyms=model1.expandPrefix(list1[0]);
                proteinG.addProperty(hasSynonyms,synonyms); 

这是显示的OUTPUT消息:

<https://Bio2cv.net/ENSP000003488> <hasSynonyms> "ENSP000003488” .

资源的输出与字符串相同。

1 个答案:

答案 0 :(得分:1)

输入文件的第二列中的同义词名称是吗? 如果是这样,则您在此处使用错误的索引0

            synonyms=model1.expandPrefix(list1[0]);

将其更改为1,并在需要纯文本字符串的情况下也删除model1.expandPrefix()调用:

            synonyms=list1[1];

要跳过无效行(不带制表符),请在split()调用后更改代码。检查list1数组的长度:

            String[] list1 = line1.split("\t");
            if (list1.length < 2) continue;

您还在读取输入的两行而不是一行。

更改此代码:

    while ((bufferedReader1.readLine()) != null) {
            line1 = bufferedReader1.readLine();

对此:

    while ((line1 = bufferedReader1.readLine()) != null) {