Возникли небольшие проблемы с выводом файлов и использованием try/catch. Я пытаюсь в основном сказать, что если пользователь вводит существующее имя файла, продолжайте цикл до тех пор, пока не будет введено действительное имя файла. Тем не менее, я не могу заставить его работать. Любые намеки на то, где я ошибаюсь? Пробовал перемещать начальное приглашение вокруг блока try, но разве это не сделало бы область доступной только в блоке try? По сути, у меня должно быть приглашение снаружи, чтобы оно было доступно для всех блоков try/catch? Хотя не уверен.
import java.util.Scanner;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
public class TestAccountWithException
{
public static void main(String[] args) throws IOException
{
// variable declaration
String fileName;
String firstName;
String lastName;
double balance;
int id = 1122;
final double RATE = 4.50;
Scanner input = new Scanner(System.in);
System.out.print("Please enter file name: ");
fileName = input.next();
File fw = new File(fileName);
try
{
// check if file already exists
while(fw.exists())
{
System.out.print("File already exists. Enter valid file name: ");
fileName = input.next();
fw = new File(fileName);
}
System.out.print("Enter your first name: ");
firstName = input.next();
System.out.print("Enter your last name: ");
lastName = input.next();
System.out.print("Input beginnning balance: ");
balance = input.nextDouble();
// pass object to printwriter and use pw to write to the file
PrintWriter pw = new PrintWriter(fw);
// print to created file
pw.println(firstName);
pw.println(lastName);
pw.println(balance);
pw.println(id);
pw.println(RATE);
pw.close();
// System.out.print("Run program? (1) Yes (2) No: ");
// cont = input.nextInt();
} catch (IOException e) {
e.printStackTrace();
}
} // end main
} // end class