Как использовать содержимое строки в качестве имени объекта конструктора класса в Java и могу ли я использовать объект класса более одного раза?

#java

Вопрос:

Я создаю программу, которая будет создавать файлы и удалять файлы и т.д., Но программа может создать только один файл, и после этого она завершается, поэтому я хочу использовать строку в качестве имени объекта класса create_file, чтобы я мог увеличивать числа(строка, используемая в качестве имени объекта), Поэтому мой вопрос в том, как я могу использовать строку в качестве имени объекта конструктора класса? ниже приведен исходный код программы-

 import java.io.IOException; import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner;  public class Create_File {  public static void main(String[] args) throws IOException {  try {  Selecter.select();  }  catch(Exception e) {  e.printStackTrace();  }  }     static void create() throws IOException {  String name;  System.out.println("Enter a name for your file");  try(BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));){  name = reader.readLine();  //this block is used as try with resource statement used to overcome scanner resource leak  }  try{  //file is created with the name that user gives    File obj = new File("D:\txtfiles\" name ".txt");  if(obj.createNewFile()) {  System.out.println("file successfully created with the name " obj.getName());  }  else{  System.out.println("The file already exists");  }    }  catch(IOException e){  //here exception during file creation is caught  System.out.println("An error occurred.");  e.printStackTrace();  } // info(name);  name = null; // Selecter.select();  }  static void info(String name) throws IOException {  File obj = new File("D:\txtfiles\" name ".txt");  String data = null;  Scanner scan = new Scanner(obj);  if(obj.exists()) {  //file properties are printed out for both newly created file and the existing file  System.out.println("File properties");  System.out.println("Name of the file = " obj.getName());  System.out.println("Path of file = " obj.getAbsolutePath());  System.out.println("Size of file in Kb= " obj.length()/1024); // obj.lengeth is divided by 1024 to get the file size in Kb  System.out.println("Readable = " obj.canRead());  System.out.println("Writable = " obj.canWrite());  }  else {System.out.println("the file does not exist");  //this block is used as try with resource statement used to overcome scanner resource leak  while(scan.hasNextLine()) {  data = scan.nextLine();  System.out.println(data);  }  } // Selecter.select();  }  static void delete(String name) throws IOException {  try{  File obj = new File("D:\txtfiles\" name ".txt");    obj.delete();  if(obj.exists()==false) {  System.out.println("file deleted successfully");  }  else {  System.out.println("file does not exist");  }  }  catch(Exception e) {  e.printStackTrace();  }   }  }   

ниже приведен исходный код класса селектора-

 import java.io.IOException; import java.io.InputStreamReader; import java.io.BufferedReader; public class Selecter {   static void select() throws IOException {  String num=null;  Create_File create =new Create_File();  System.out.println("Select Action");  System.out.println("1. Create new text file");  System.out.println("2. Delete an existing file");  System.out.println("3. Find info of a file");  System.out.println("4. Print the contents of a file");  System.out.println("5. EXIT");  System.out.println("Your choice = ");      try  (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));){  int choice = Integer.parseInt(num= reader.readLine());  if(choice==1) {  create.create();    }  else if(choice == 2){  System.out.println("enter file name to delete");  String name=reader.readLine();  create.delete(name);  }  else if(choice == 3) {  System.out.println("enter file name to find its info");  String name= reader.readLine();  create.info(name);  }  else if(choice ==4) {  Buffer contents = new Buffer();  Buffer.main(null);  }  else if(choice == 5) {  System.exit(0);  }  }   // select();  }  }     

или есть альтернативное решение этой проблемы, я хочу, чтобы программа продолжала работать до тех пор, пока пользователь не захочет выйти.

Комментарии:

1. «Я хочу, чтобы программа продолжала работать до тех пор, пока пользователь не захочет выйти» — Значит, вы просто ищете цикл? Вы можете обернуть свою программную логику верхнего уровня в цикл, который будет постоянно проверять вводимые пользователем данные и выполнять запрошенную задачу. Или ты спрашиваешь о чем-то другом? Мне не совсем ясно, что конкретно работает не так, как ожидалось.

2. эй, Дэвид, это в цикле, все остальные параметры работают, за исключением того, когда мы выбираем вариант 1 (создать) во второй раз, когда он выдает ошибки, но для другого варианта он работает просто отлично.

3. И в чем же заключается ошибка? Какая операция вызывает эту ошибку? Пожалуйста, конкретизируйте проблему.