首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >读取TXT文件时向量超出界限

读取TXT文件时向量超出界限
EN

Stack Overflow用户
提问于 2016-09-29 04:11:58
回答 2查看 48关注 0票数 1

我试图读取.TXT文件的值,并将这些值存储在各种向量中(文件中的值用逗号分隔,我使用.Split ()方法获取这些值),在我看来,出现的问题是,我的向量aux在第一次编写之后超过了限制。

守则:

代码语言:javascript
运行
复制
String[] iltxt = new String[49];
String[] ertxt = new String[49];
String[] tcsetxt = new String[49];
String[] arttxt = new String[49];
String[] rmtxt  = new String[49];
String[] burtxt  = new String[49];
String[] toftxt = new String[49];
String[] atgtxt = new String[49];
String[] nrtxt = new String[49];
String[] hlab27txt = new String[49];
String[] djtxt = new String[49];
String[] dltxt = new String[49];
String[] rctxt = new String[49];
String[] dctxt = new String[49];
String[] mobtxt = new String[49];
String[] dtstxt = new String[49];
String[] sintxt = new String[49];
String[] diagnosticotxt = new String[49];
String[] aux = new String[18];
int cont = 1;  
      try {
      FileReader arq = new FileReader("File.txt");
      BufferedReader lerArq = new BufferedReader(arq);
      String linha = lerArq.readLine(); 
      aux = linha.split(",");
      //STORES THE VALUES OF THE FIRST LINE INTO THE VECTORS
      dltxt[0] = aux[0];
      rctxt[0] = aux[1];
      dctxt[0] = aux[2];
      mobtxt[0] = aux[3];
      dtstxt[0] = aux[4];
      iltxt[0] = aux[5];
      ertxt[0] = aux[6];
      tcsetxt[0] = aux[7];
      arttxt[0] = aux[8];
      rmtxt[0] = aux[9];
      burtxt[0] = aux[10];
      toftxt[0] = aux[11];
      sintxt[0] = aux[12];
      atgtxt[0] = aux[13];
      nrtxt[0] = aux[14];
      hlab27txt[0] = aux[15];
      djtxt[0] = aux[16];
      diagnosticotxt[0] = aux[17];
      //CLEAN THE VECTOR AUX TO THE NEXT READ
      aux = null;
      while (linha != null) {
            //READ THE VALUES OF THE SECOND TO THE LAST LINE AND STORES INTO THE VECTORS
            linha = lerArq.readLine(); 
            aux = linha.split(",");
            dltxt[cont] = aux[0];
            rctxt[cont] = aux[1];
            dctxt[cont] = aux[2];
            mobtxt[cont] = aux[3];
            dtstxt[cont] = aux[4];
            iltxt[cont] = aux[5];
            ertxt[cont] = aux[6];
            tcsetxt[cont] = aux[7];
            arttxt[cont] = aux[8];
            rmtxt[cont] = aux[9];
            burtxt[cont] = aux[10];
            toftxt[cont] = aux[11];
            sintxt[cont] = aux[12];
            atgtxt[cont] = aux[13];
            nrtxt[cont] = aux[14];
            hlab27txt[cont] = aux[15];
            djtxt[cont] = aux[16];
            diagnosticotxt[cont] = aux[17];
            //CLEAN THE AUX VECTOR
            aux = null;
            //INCREMENT THE COUNTER TO SAVE VALUES IN THE NEXT POSITIONS OF THE VECTORS
            cont++;
      }
      arq.close();
      } catch (IOException e) {
            System.err.printf("Error while open the file: %s.\n",
            e.getMessage());
      }

TXT文件的值:

代码语言:javascript
运行
复制
Sim,Sim,Sim,Ilimitado,Sim,Ausente,Moderado,Moderado,Não,Não,Não,Não,Não,Não,Não,Negativo,Não,Espondilite Anquilosante

Não,Não,Não,Normal,Não,Ausente,Moderado,Não,Sim,Não,Não,Não,Não,Sim,Não,Não,Não,Artrite de Gota

Não,Não,Não,Limitado,Não,Ausente,Moderado,Não,Não,Não,Não,Sim,Não,Sim,Não,Não,Não,Artrite de Gota

Não,Não,Não,Normal,Não,Moderado,Importante,Moderado,Não,Não,Não,Não,Não,Sim,Não,Não,Não,Artrite Reumatica

Não,Não,Não,Limitado,Não,Muito Importante,Muito Importante,Importante,Sim,Não,Não,Sim,Sim,Sim,Não,Não,Não,Artrite de Gota

Não,Não,Não,Limitado,Não,Moderado,Muito Importante,Não,Sim,Não,Não,Não,Sim,Sim,Não,Não,Não,Artrite Reumática

Sim,Não,Sim,Normal,Sim,Moderado,Importante,Importante,Não,Não,Não,Não,Não,Não,Não,Positivo,Não,Espondilite Anquilosante 

Sim,Sim,Sim,Limitado,Sim,Moderado,Importante,Não,Não,Não,Não,Não,Não,Não,Não,Positivo,Não,Espondilite Anquilosante

Não,Não,Não,Limitado,Não,Muito Importante,Ausente,Não,Sim,Não,Não,Não,Sim,Sim,Não,Não,Não,Artrite de Gota

Não,Não,Não,Limitado,Não,Importante,Ausente,Leve,Sim,Sim,Não,Não,Sim,Sim,Não,Negativo,Não,Artrite Reumatica

Sim,Não,Não,Normal,Não,Leve,Muito Importante,Não,Não,Não,Não,Não,Não,Não,Não,Negativo,Não,Espondilite Anquilosante

Não,Não,Não,Normal,Não,Leve,Importante,Não,Sim,Sim,Não,Não,Sim,Sim,Não,Não,Não,Artrite Reumática

Sim,Não,Não,Normal,Não,Moderado,Ausente,Não,Sim,Não,Não,Não,Sim,Sim,Não,Positivo,Não,Espondilite Anquilosante

Não,Não,Não,Limitado,Não,Importante,Ausente,Moderado,Sim,Sim,Não,Não,Sim,Sim,Não,Não,Sim,Artrite Reumatica

Sim,Sim,Não,Normal,Sim,Ausente,Moderado,Leve,Não,Sim,Não,Não,Não,Não,Não,Positivo,Não,Espondilite Anquilosante

Sim,Não,Sim,Normal,Não,Ausente,Importante,Não,Não,Não,Não,não,Não,Não,Não,Positivo,Não,Espondilite Anquilosante

Não,Não,Não,Normal,Não,Importante,Ausente,Não,Não,Não,Sim,Não,Não,Sim,Sim,Não,Não,Artrite Reumatica

Sim,Sim,Não,Normal,Não,Leve,Importante,Importante,Não,Não,Não,Não,Não,Não,Não,Positivo,Não,Espondilite Anquilosante

Não,Não,Não,Limitado,Não,Moderado,Moderado,Moderado,Sim,Não,Não,Não,Não,Sim,Não,Não,Não,Artrite de Gota

Não,Não,Não,Limitado,Não,Importante,Importante,Moderado,Sim,Não,Sim,Sim,Sim,Sim,Não,Não,Não,Artrite de Gota

Não,Não,Não,Normal,Não,Importante,Importante,Não,Sim,Sim,Sim,Sim,Não,Sim,Não,Não,Não,Artrite de Gota

Sim,Sim,Não,Normal,Sim,Ausente,Importante,Importante,Não,Sim,Não,Não,Não,Sim,Não,Positivo,Não,Espondilite Anquilosante

Não,Não,Não,Normal,Não,Importante,Moderado,Não,Sim,Não,Sim,Sim,Sim,Sim,Não,Não,Não,Artrite de Gota

Não,Não,Não,Limitado,Não,Moderado,Ausente,Não,Não,Não,Sim,Sim,Não,Não,Não,Não,Não,Artrite de Gota

Não,Não,Não,Normal,Não,Importante,Importante,Não,Sim,Não,Não,Não,Sim,Sim,Não,Negativo,Não,Artrite Reumatica

Não,Não,Não,Limitado,Não,Importante,Moderado,Moderado,Sim,Não,Não,Não,Sim,Sim,Não,Não,Não,Artrite Reumatica

Sim,Não,Não,Normal,Não,Moderado,Importante,Não,Não,Não,Não,Não,Não,Não,Não,Positivo,Não,Espondilite Anquilosante

Não,Não,Não,Limitado,Não,Ausente,Ausente,Não,Sim,Não,Não,Não,Sim,Sim,Não,Negativo,Não,Artrite Reumática

Sim,Sim,Não,Limitado,Sim,Leve,Importante,Não,Não,Sim,Não,Não,Não,Não,Não,Negativo,Não,Espondilite Anquilosante

Não,Não,Não,Limitado,Não,Importante,Moderado,Não,Sim,Sim,Não,Não,Sim,Sim,Não,Não,Não,Artrite Reumatica

Sim,Sim,Não,Limitado,Não,Importante,Moderado,Não,Não,Não,Não,Não,Não,Não,Não,Positivo,Não,Espondilite Anquilosante

Sim,Não,Não,Normal,Não,Ausente,Moderado,Moderado,Não,Não,Não,Não,Não,Sim,Não,Não,Não,Artrite de Gota

Não,Não,Não,Limitado,Não,Moderado,Moderado,Não,Sim,Sim,Sim,Sim,Sim,Sim,Não,Não,Não,Artrite de Gota

Sim,Sim,Não,Limitado,Sim,Importante,Muito Importante,Importante,Sim,Sim,Não,Não,Sim,Sim,Não,Não,Não,Artrite Reumatica

Não,Não,Não,Limitado,Não,Muito Importante,Ausente,Moderado,Sim,Sim,Não,Não,Sim,Sim,Sim,Não,Não,Artrite Reumática

Não,Não,Não,Limitado,Não,Leve,Moderado,Não,Sim,Não,Não,Não,Sim,Sim,Não,Não,Não,Artrite Reumatica

Não,Não,Não,Limitado,Não,Moderado,Não,Sim,Não,Não,Sim,Não,Sim,Não,Não,Não,Artrite de Gota

Sim,Sim,Sim,Limitado,Não,Moderado,Muito Importante,Moderado,Sim,Não,Não,Não,Não,Sim,Não,Positivo,Sim,Espondilite Anquilosante

Não,Não,Não,Normal,Não,Leve,Importante,Não,Sim,Não,Não,Sim,Sim,Sim,Não,Não,Não,Artrite de Gota

Sim,Não,Não,Normal,Não,Ausente,Moderado,Moderado,Não,Não,Não,Não,Não,Sim,Não,Positivo,Não,Espondilite Anquilosante

Sim,Sim,Não,Normal,Não,Ausente,Ausente,Não,Não,Sim,não,Não,Não,Sim,não,Não,Não,Artrite Reumatica

Sim,Sim,Sim,Normal,Não,Ausente,Importante,Não,Não,Não,Não,Não,Não,Não,Não,Positivo,Não,Espondilite Anquilosante

Sim,Não,Não,Normal,Sim,Moderado,Importante,Não,Não,Sim,Não,Não,Não,Não,Não,Positivo,Não,Espondilite Anquilosante

Não,Não,Não,Limitado,Não,Leve,Importante,Não,Sim,Sim,Não,Não,Sim,Sim,Não,Não,Não,Artrite Reumatica

Não,Não,Não,Limitado,Não,Leve,Moderado,Não,Sim,Sim,Não,Não,Sim,Sim,Não,Não,Não,Artrite Reumatica

Não,Não,Não,Limitado,Não,Moderado,Importante,Não,Sim,Não,Não,Não,Sim,Sim,Não,Não,Não,Artrite Reumatica

Não,Não,Não,Normal,Não,Importante,Importante,Não,Não,Sim,Não,Não,Não,Sim,Não,Não,Não,Artrite Reumatica

Sim,Não,Não,Normal,Não,Leve,Importante,Não,Sim,Não,Não,Não,Sim,Sim,Não,Não,Não,Artrite de Gota

Não,Não,Não,Normal,não,Moderado,Importante,Não,Não,Sim,Não,não,Não,Sim,Não,Não,Não,Artrite Reumatica

执行代码时出现的错误:

代码语言:javascript
运行
复制
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1

错误行:

代码语言:javascript
运行
复制
rctxt[cont] = aux[1];

有人知道怎么解决这个吗?(对葡萄牙语的一些词很抱歉,我来自巴西)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-29 04:29:07

看起来有些行没有任何文本(空行)。

这些行上的分隔将不会产生一个18长度的Strings数组。

试一试

代码语言:javascript
运行
复制
if (arr.length < 18)
   continue;

同样,如上所述,有一个封装这些数据的对象将使您的代码更具可读性。

编辑

为求澄清

你有这段代码

代码语言:javascript
运行
复制
 while (linha != null) {
        linha = lerArq.readLine(); 
        aux = linha.split(",");

现在检查aux数组的大小,如果不是18,那么跳过这一行

代码语言:javascript
运行
复制
    if (aux.length < 18) {
       System.err.println (linha + " does not have enough values");
       continue;
    }
票数 2
EN

Stack Overflow用户

发布于 2016-09-29 04:31:49

之所以会出现异常,是因为您用空行分隔了行,并且没有检查实际是否有18个令牌。要么删除这些空行,要么添加如下条件:

代码语言:javascript
运行
复制
linha = lerArq.readLine();

aux = linha.split(",");
if(aux.length != 18)
    continue;

此外,您有一个小问题,您的一条线(35)。该行只有17个标记,如果不使用条件但删除File.txt中的空行,则会引发下一个File.txt。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39761277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档