Исправлено: вместо вызова isFile() Я использовал exists() и, похоже, работает нормально. Если возможно, кто-нибудь может объяснить, почему это изменение сработало?Java: Справка по выводу файла
Я пытаюсь записать файл excel, но у меня возникли проблемы при попытке создать этот файл, если имя уже существует.
В основном я беру файл, который загружается на сервер, считывает его, а затем выводит файл отчета в новое место с тем же именем файла. Я попытался сделать это, просто проверив, существует ли файл, а затем добавляет номер в имя файла. Мой код работает, если файл не существует или существует без номера (например, filename.xls). Если файл существует с именем «filename1.xls», сервер просто висит при попытке записать файл. Что можно сделать, чтобы исправить это?
Вот мой код:
String destination = "c:/apache-tomcat-7.0.8/webapps/reports/" + fileName.substring(fileName.lastIndexOf("\\")+1, fileName.lastIndexOf(".")) + ".xls";
int filenum = 1;
while (new File(destination).isFile()) {
destination = "c:/apache-tomcat-7.0.8/webapps/reports/" + fileName.substring(fileName.lastIndexOf("\\")+1, fileName.lastIndexOf(".")) + filenum + ".xls";
filenum++;
}
WritableWorkbook workbook = Workbook.createWorkbook(new File(destination));
Если что-то еще держит файл открытым, то почему бы, если бы работа, если файл с именем «file.xls», но не с именем «file1.xls». Разве это не потерпит неудачу в обеих ситуациях? – Biggsy