2016-01-09 69 views
-1

我想提取保存在文本文件中的信息並將其轉換爲ArrayList。該文件由一個數字組成,以便將行和字符串分隔開。問題是我不知道如何將encuestas轉換爲數組,並且它表示當我嘗試listas.add時變量可能未被初始化。將文本文件轉換爲數組列表

public Lista Cargar_Listas(){ 
    ArrayList <Militante> militantes= new ArrayList <>(); 
    Lista lista = new Lista(militantes); 

    try{ 
     FileReader fr = new FileReader("archivo.txt"); 
     BufferedReader entrada = new BufferedReader(fr); 

     int j=0; 
     String s; 
     String nombrem, apellidos, profesion, siglas_partido, carne; 
     int edad; 
     char genero; 
     double cuota; 
     String[] encuesta; 

     while((s=entrada.readLine())!=null){ 

      if(j==0) nombrem=s; 
      if(j==1) apellidos=s; 
      if(j==2) edad=Integer.parseInt(s); 
      if(j==3) profesion=s; 
      if(j==4) genero=s.charAt(0); 
      if(j==5) siglas_partido=s; 
      if(j==6) encuesta={s}; 
      if(j==7) cuota=Double.parseDouble(s);    
      if(j==8) carne=s; 


      j++; 

      if(j>8){ 
       j=0; 
       lista.add(new Militante(nombrem, apellidos, edad, profesion, genero, siglas_partido, encuesta, cuota, carne)); 
      } 
     } 
     entrada.close(); 
    } 
    catch(java.io.FileNotFoundException fnfex){ 
     System.out.println("Archivo no encontrado: "+fnfex);} 
    catch(java.io.IOException ioex){} 
    return lista; 
} 
+0

什麼類的類是'Lista'?你爲什麼不能使用'militantes.add()'? –

+1

請同時發佈一些示例數據。 – npinti

+0

@ cricket_007 Lista是ArrayList 元素。我也嘗試過使用militantes.add(),但它不起作用 –

回答

0

編輯: 什麼是輸入的第七行是這樣的:它是一個逗號分隔的線? 使用:

encuesta = s.split(","); 

或者,您的問題可能是在Militante類。 它可能包含一個List列表,並且構造函數可能期望列表。 但是你正在傳遞一個String []。

嘗試:

militantes.add(new Militante(nombrem, apellidos, edad, profesion, genero, siglas_partido, Arrays.asList(encuesta), cuota, carne))); 

如果這不起作用,請編輯您的帖子添加Militante類。 謝謝。

+1

如果你不知道'Militante'的構造函數是什麼樣的,你怎麼能把它作爲一個答案? –

+0

你是對的,我很抱歉。 –