В настоящее время у меня есть сканер, который сканирует все содержимое файла и печатает данные, которые читаются в текстовой области, вроде функции открытия. Моя проблема в том, что метод, который я использовал (а также единственный, который я знаю), требует создания файла и последующего его удаления, однако этот файл, который был создан, не может быть удален, поскольку он используется процессом сканера, и я не знаю, как закрыть сканер, как он был определен в строке. Это, вероятно, простое решение, но оно ускользало от меня в течение некоторого времени. Заранее спасибо. Вот мой код:Как закрыть сканер Java, когда сканер ссылается на строку?
int returnVal = fc.showDialog(this,
"Open");
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
String fullPath = file.getAbsolutePath();
try {
new FileEncryptor("DES/ECB/PKCS5Padding",fullPath).decrypt();
String content = new Scanner(new File(fullPath + ".dec")).useDelimiter("\\Z").next();
jTextArea1.setText(content);
//close scanner here to delete file
File n = new File(fullPath + ".dec");
System.out.println(n);
n.delete();
} catch (Exception e) {
e.printStackTrace();
}
} else {
}
//Reset the file chooser for the next time it's shown.
fc.setSelectedFile(null);
}
Что вы имеете в виду «оно было определено в строке»? Просто назовите 'content.close()'. Это не повлияет на данные, которые вы уже прочитали. –
Вам не нужно закрывать сканер, поскольку нет экземпляра сканера. –