Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 读取TXT文件时向量超出范围_Java_String_File_Vector - Fatal编程技术网

Java 读取TXT文件时向量超出范围

Java 读取TXT文件时向量超出范围,java,string,file,vector,Java,String,File,Vector,我试图读取.TXT文件的值,并将这些值存储在各种向量中(文件中的值用逗号分隔,我使用.Split()方法获取这些值),我遇到的问题是,在第一次写入后,我的向量aux超过了限制 守则: String[] iltxt = new String[49]; String[] ertxt = new String[49]; String[] tcsetxt = new String[49]; String[] arttxt = new String[49]; String[] rmtxt = new S

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

守则:

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文件的值:

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
执行代码时出现的错误:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1
rctxt[cont] = aux[1];
错误行:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1
rctxt[cont] = aux[1];

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

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

这些行上的拆分不会生成18长度的字符串数组

试一试

现在检查
aux
阵列的大小,如果不是18,则跳过此行

    if (aux.length < 18) {
       System.err.println (linha + " does not have enough values");
       continue;
    }
if(辅助长度<18){
System.err.println(linha+“没有足够的值”);
继续;
}

发生异常是因为您用空行分隔了行,并且 不要检查实际上是否有18个代币。 要么删除这些空行,要么添加如下条件:

linha = lerArq.readLine();

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

你的一句台词也有点问题(35)。如果您不使用该条件,但删除文件中的空行,那么该行只有17个令牌,并导致下一个ARRAYOUTFOFFUNCTION异常。TXT

请张贴STACKTROW的其余部分,并显示哪个行引起异常。您应该考虑创建一个类来保存数据。那么你只需要这些对象的一个数组。我正在使用JFRAME,我将更新显示错误行的帖子。JFRAME与你当前的问题无关。嗯,是的,对不起,我的错。我会解决的。还是在早上-.-“好的,我删除了文件中的所有空行,现在在最后一行diagnosticotxt[cont]=aux[17]中出现了相同的错误occours,我没有使用您所说的条件,因为我不理解它。你能再解释一下吗?@Mutante条件检查你从split方法收到的令牌数组是否长度不超过18。如果是这种情况,continue会让程序“跳回”循环开始并迭代下一行。我的回答中也描述了你现在遇到的例外情况。文件中的一个entris只有17个令牌。因此,试图访问第18个元素([17])会导致一个例外,你能用这个答案更新我的帖子吗?我看不出为了避免最后一个异常,我把你提到的条件放在哪里了。好吧,我删除了我文件中的所有空行,现在在最后一行diagnosticotxt[cont]=aux[17],我没有使用你说的条件,因为我不理解它。你能再解释一下吗?