2014-09-20 2 views
-1

есть ошибка в моем коде это дает мне предупреждение«в» никогда не будет закрыт

Предупреждение: утечка ресурсов: «в» никогда не будет закрыт

Я никогда не имел эту проблему раньше, в факт, я пробовал старые программы, которые я написал, и это все еще дает мне ту же проблему. Как это исправить ?

import java.util.Scanner ; 


public class CountVowels 
{ 
    public static void main(String[] args) 
    { 
     Scanner in = new Scanner(System.in); 
     System.out.println("Enter a word: "); 
     String word = in.next(); 

     int vowelCount = 0; 
     for (int i = 0; i < word.length(); i++) 
     { 
     char currentCharacter = word.charAt(i); 
     if (currentCharacter == 'a' || currentCharacter == 'A' 
      || currentCharacter == 'e' || currentCharacter == 'E' 
      || currentCharacter == 'i' || currentCharacter == 'I' 
      || currentCharacter == 'o' || currentCharacter == 'O' 
      || currentCharacter == 'u' || currentCharacter == 'U') 
     { 
      vowelCount++; 
     } 
     } 
     System.out.println(vowelCount + " vowel(s)."); 



    } 
} 
+0

Закрыть? Или, что еще лучше, используйте 'try'-with-resources, чтобы закрыть его автоматически. – chrylis

+0

Предупреждения не совпадают с ошибками. –

+0

http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#close() – xlm

ответ

2

Вам просто нужно будет закрыть сканер в конце вашей функции с:

in.close(); 

Как это:

public static void main(String[] args) 
{ 
    Scanner in = new Scanner(System.in); 
    // Do some stuff using the scanner 
    in.close(); 
} 

А также посмотрите here.

+0

Спасибо. Он работает сейчас. – user3251123

+2

+1, yup :). Еще лучше было бы для него использовать инструкцию 'try/catch', а также добавить« наконец », чтобы закрыть сканер – nem035

 Смежные вопросы

  • Нет связанных вопросов^_^