2015-01-31 1 views
1

파일에서 함수를 계산할 때 사용해야하는 정수 값을 읽습니다. multiple.문자열 값을 파일에서 정수로 변환

그러나 정수로 변환 한 후 정수 변수는 더 이상 계산할 수 없습니다.

도움이 필요하십니까?

import java.io.*; 

public class Functions { 

    int values, mul7, mul11, mul13; 

    public static void main (String []args) { 

     Functions go = new Functions(); 
     go.multiple(); 
     // will call functions here 
    } 

    public void multiple() { 


     int a = 7; 
     int b = 11; 
     int c = 13; 

     try { 
      File inputFile = new File ("JavaInputData.txt"); 
      FileReader fileReader = new FileReader (inputFile); 

      BufferedReader reader = new BufferedReader (fileReader); 

      String line = null; 

      while ((line = reader.readLine()) !=null) 
        { 
         values = Integer.parseInt(line); 
         System.out.println(values); 
        } 

      mul7 = values % a; 
      mul11 = values %b; 
      mul13 = values %c; 

      System.out.println(mul7); 

      reader.close(); 
      } 

     catch (Exception ex) 
     { 
      ex.printStackTrace(); 
     } 


    } 

} 
+0

'while' 루프에서 전체 파일을 읽으므로'values'의 마지막 값만 실제로 사용됩니다. 어쨌든 'values'는 어디에 정의되어 있습니까? –

+0

@ PM77-1 필드입니다. 클래스 선언 상단에 정의됩니다. –

답변

1

루프 바디에서 계산 및 출력을 수행하십시오. 뭔가 같은, 또한

while ((line = reader.readLine()) != null) 
{ 
    values = Integer.parseInt(line); 
    System.out.println(values); 
    mul7 = values % a; 
    mul11 = values % b; 
    mul13 = values % c; 
    System.out.printf("mul7 = %d, mul11 = %d, mul13 = %d%n", mul7, mul11, mul13); 
} 

, 나는 당신이 당신의 Readerclose()하는 try-with-resources를 사용하는 것이 좋습니다;

try (File inputFile = new File ("JavaInputData.txt"); 
    FileReader fileReader = new FileReader (inputFile); 
    BufferedReader reader = new BufferedReader (fileReader)) { 

그런 식으로 close()을 명시 적으로 호출 할 필요가 없습니다. 그러나, 당신이 close()를 명시 적으로 부를 것이라면; finally 블록에서 그렇게하십시오.

+0

감사합니다. 원하는 결과를 출력하기 전에 루프에서 원하는 것을 올바르게 계산할 수있었습니다. 그러나, 나는 여전히 NumberFormatException 런타임에 내 코드에서 사용하는 데 eventhough 데있다. 문자열 연쇄에 의한 것 같지만 어떻게 수정합니까? 당신은 당신의 시험 자원 팁에 대해 더 자세히 설명 할 수 있습니까? –

+0

@FabienL. 'try-with-resources'를 위해서 나는 문서에 대한 링크와 예제를 주었다. '문자열'연결에 관해서는, 게시 된 코드 **는 ** 않습니다. –

+0

감사합니다. –