2014-11-06 2 views
0

나는 어떤 숫자가 메가 수백만의 공에 대해 가장 좋은 결과를 보여 주 었는지 확인하기 위해 프로그램을 작성하려고합니다. 재미로만 생각합니다. 미래를위한 무엇인가를 예측하는 데 도움).ArrayList가 텍스트 파일을 읽는 동안 for 루프 내에 채워지지 않습니다.

문제가 :

ArrayLists이 BufferedReader로의 입력에서 채울하지 않습니다,하지만 난 콘솔에 아무것도 인쇄 할 수 있습니다, 단지 배열이나 ArrayList를에 추가 할 수 없습니다.

나는 이것이 모든 이상한 인 이름을 어떻게 실수에 대해 사과 :

public static void main(String[] args) { 
    MathStats mathStats = new MathStats(); 
    getFileInfo(); //Same class as main. 
    System.out.println(); 
    System.out.println(mathStats.num1.size()); 
    //num1 should be populated after calling getFileInfo(); 

} //End of main 


    private static void getFileInfo() { 
    File listOfTickets = new File(**FILE**); 
    MathStats mathStats = new MathStats(); 

    try { 
     BufferedReader getInfo = new BufferedReader(new FileReader(
       listOfTickets)); 

     String ticketInfo = getInfo.readLine(); 

     for (int i = 0; ticketInfo != null; i++) { 

      ticketInfo.split("\n"); 

      System.out.println(ticketInfo); 

      int a = Integer.parseInt(ticketInfo.substring(25, 
        27)); 
      int b = Integer.parseInt(ticketInfo.substring(28, 
        30)); 
      int c = Integer.parseInt(ticketInfo.substring(31, 
        33)); 
      int d = Integer.parseInt(ticketInfo.substring(34, 
        36)); 
      int e = Integer.parseInt(ticketInfo.substring(37, 
        39)); 
      int f = Integer.parseInt(ticketInfo.substring(40, 
        42)); 

      mathStats.setArrayValues(a, b, c, d, e, f); 
      mathStats.setCount(i); 

      ticketInfo = getInfo.readLine(); 
     } 

     getInfo.close(); 

    } catch (FileNotFoundException e) { 
     System.out.println("Can't find file"); 
     System.exit(0); 

    } catch (IOException e) { 
     System.out.println("An I/O Error Occured"); 
     System.exit(0); 

    } 


} 

방법을 setArrayValues을 단지의 ArrayList의 각 각각의 INT를 추가하거나이어야가에 가정합니다. 그것은 보통의 list.add (a)를 사용합니다; 각 int를 추가합니다.

문제점이 메서드를 호출 한 후 main에서 각 ArrayList의 크기를 테스트 할 때마다 매번 0이 반환됩니다.

다음은이 09-15-24-39-41 [

2014년 11월 4일 메가 수백만 (사이에 여분의 행을 삭제) 테스트하려는 경우 텍스트 파일에 넣어 일부 데이터를의 01], Megaplier® : X4

2014년 10월 31일 메가 수백만 11-29-36-58-67 [15] Megaplier® : X2

2014년 10월 28일 메가 수백만 03-50- 57-58-60 [11], 메가 플라이어 : X5

10/24/2014 메가 수백만 02-14-21-28-55 [03], 메가 플라이어 : X3

2014년 10월 21일 메가 수백만 05-35-37-41-66 [11] Megaplier® : X5

2014년 10월 17일 메가 수백만 21-31-43-56-60 [12] , Megaplier® : X4 여기

setArrayValues ​​ 귀도 말했듯이, 당신은 getFileInfo 방법에 새로운 MathStats를 인스턴스화하고

public void setArrayValues(int a, int b, int c, int d, int e, int f) { 
    num1.add(a); 
    num2.add(b); 
    num3.add(c); 
    num4.add(d); 
    num5.add(e); 
    num6.add(f); 

} 
+2

'setArrayValues'에 대한 코드를 표시 할 수 있습니까? –

+0

catch 블록이 예외가 발생하지 않습니다. 최소한 인쇄 스택 추적을 추가하십시오. –

+2

@NikhilTalreja 왜 "파일을 찾을 수 없습니까?"라는 설명이 잘 보이지 않습니다. 우리는 보통 어떤 줄이 나타나는지 보지 않아도됩니다. – ajb

답변

0

, 그래서 메인에 instatiated 하나는 채워지지 않습니다. main에서 생성 된 참조를 getFileInfo 메소드에 전달하여이를 수정할 수 있습니다.

public static void main(String[] args) { 
    MathStats mathStats = new MathStats(); 
    getFileInfo(mathStats); //Same class as main. 
    System.out.println(); 
    System.out.println(mathStats.num1.size()); 
    //num1 should be populated after calling getFileInfo(); 

} //End of main 


private static void getFileInfo(MathStats mathStats) { 
    File listOfTickets = new File(**FILE**); 
    try { 
     //.. 
+0

정말 고마워요! 그것은 그것을 고쳤다! – Heavypick

관련 문제