Сегодня я написал код Java, который читает входные данные из двух текстовых файлов с именами input1.txt и input2.txt и решает 2 проблемы программирования.Он запускается с терминала, как:
java berkSol input1.txt input2.txt
Я читаю свои входы со сканером в программе.У меня есть 2 объекта сканера.Мой код в основном такой:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Arrays;
public class berkSol {
public static void main(String[] args) throws FileNotFoundException {
if(args.length > 0) {
// The Solution of Problem1 begins
File file1 = new File(args[0]);
Scanner reader = new Scanner(file1); // The Scanner that is going to read file1.
try {
.
.
.
// The Solution of Problem 2 begins
File file2 = new File(args[1]);
reader = new Scanner(file2); // The Scanner that is going to read file2.
.
.
.
}
finally {
if(reader!=null)
reader.close();
}
} // End Of Check on the Arguments Length
} // End of Main
.
.
.
}
Код Visual Studio предупреждал меня об утечке ресурсов, поэтому в конце я добавил этот блок наконец.Но теперь он дает то же самое предупреждение для внутреннего сканера.Я не использую сканер, который читает файл1 после того, как я инициализирую его в файл2.Я подумал, что, поскольку их имена совпадают, при закрытии после блока try второй из них не пропустит ни одного ресурса.
Моя программа работает, но я не знаю, могут ли быть какие-либо проблемы, потому чтоутечки ресурса.
Может кто-нибудь сказать мне, почему мой второй сканер протекает и что я могу сделать, чтобы предотвратить это, и что может случиться, если я не исправлю это?
Я бы хотелценю любую помощь.Заранее спасибо.