我试图读取.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];有人知道怎么解决这个吗?(对葡萄牙语的一些词很抱歉,我来自巴西)
发布于 2016-09-29 04:29:07
看起来有些行没有任何文本(空行)。
这些行上的分隔将不会产生一个18长度的Strings数组。
试一试
if (arr.length < 18)
continue;同样,如上所述,有一个封装这些数据的对象将使您的代码更具可读性。
编辑
为求澄清
你有这段代码
while (linha != null) {
linha = lerArq.readLine();
aux = linha.split(",");现在检查aux数组的大小,如果不是18,那么跳过这一行
if (aux.length < 18) {
System.err.println (linha + " does not have enough values");
continue;
}发布于 2016-09-29 04:31:49
之所以会出现异常,是因为您用空行分隔了行,并且没有检查实际是否有18个令牌。要么删除这些空行,要么添加如下条件:
linha = lerArq.readLine();
aux = linha.split(",");
if(aux.length != 18)
continue;此外,您有一个小问题,您的一条线(35)。该行只有17个标记,如果不使用条件但删除File.txt中的空行,则会引发下一个File.txt。
https://stackoverflow.com/questions/39761277
复制相似问题