Как я могу напечатать три инструкции pw.println только один раз, хотя я запускаю программу много раз

#java

#java

Вопрос:

Я пытаюсь напечатать pw.println инструкции только один раз, хотя я запускаю программу много раз. Есть ли какое-либо решение?

 public static void main(String[] args) throws IOException {
    // TODO code application logic here
 Scanner a=new Scanner (System.in);
 String First_Name , Last_Name, Address , E_mail , Department;
 int Password;
 System.out.println("ENTER FIRST NAME: ");
 First_Name=a.next();
 System.out.println("ENTER LAST NAME: ");
 Last_Name=a.next();
 System.out.println("ENTER ADDRESS: ");
 Address=a.next();
 System.out.println("ENTER E_MAIL: ");
 E_mail=a.next();
 System.out.println("ENTER DEPARTMENT: ");
 Department=a.next();
 System.out.println("ENTER PASSWORD: ");
 Password=a.nextInt();      
 FileWriter fw=new FileWriter("C:\Users\HP\Desktop\STUD_INFO.txt" , true);
 PrintWriter pw=new PrintWriter (fw);
 pw.println("ttttttSTUDENT INFORMATION");
 pw.println("---------------------------------------------------------------------------------------------------------------------------------------------------");
 pw.println("First_Name"   "tt    "   "Last_Name"   "tt    "   "Address"   "tt    "   "E_mail"   "tt    "   "Department"   "tt    "   "Password");
 pw.println(First_Name     "ttt    "   Last_Name   "tt    "   Address   "tt    "   E_mail   "t    "   Department   "ttt    "   Password);  
 pw.close();
}
  

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

1. Запустите ее только один раз?

2. Проверьте, существует ли целевой файл уже и не является ли он пустым / содержит значения, которые вы хотите записать?

3. @Elliot Frisch да, каждый раз, когда я запускаю программу, появляется инструкция «информация об ученике», и я хочу, чтобы ее просмотрели один раз ,

4. @CrushaK. Руль существует, моя проблема заключается в том, как напечатать инструкцию только один раз ^^

5. Предложения Crusha верны. Используйте инструкцию if, чтобы проверить, существует ли файл уже, и если он существует, не печатайте ненужные строки.

Ответ №1:

Как указала Crusha, проверьте, существует ли файл, прежде чем печатать в нем ваши выходные данные. Например:

 File f = new File("C:\Users\HP\Desktop\STUD_INFO.txt");
FileWriter fw=new FileWriter("C:\Users\HP\Desktop\STUD_INFO.txt" , true);
PrintWriter pw=new PrintWriter (fw);
if (!f.exists()) {
    pw.println("ttttttSTUDENT INFORMATION");
    pw.println("---------------------------------------------------------------------------------------------------------------------------------------------------");
    pw.println("First_Name"   "tt    "   "Last_Name"   "tt    "   "Address"   "tt    "   "E_mail"   "tt    "   "Department"   "tt    "   "Password");
}
pw.println(First_Name     "ttt    "   Last_Name   "tt    "   Address   "tt    "   E_mail   "t    "   Department   "ttt    "   Password);  
  

Ответ №2:

Вы могли бы просто удалить файл, если он уже существует:

 Files.deleteIfExists("C:\Users\HP\Desktop\STUD_INFO.txt"); //deletes the file

FileWriter fw=new FileWriter("C:\Users\HP\Desktop\STUD_INFO.txt" , true);
PrintWriter pw=new PrintWriter (fw);
pw.println("ttttttSTUDENT INFORMATION");
pw.println("---------------------------------------------------------------------------------------------------------------------------------------------------");
pw.println("First_Name"   "tt    "   "Last_Name"   "tt    "   "Address"   "tt    "   "E_mail"   "tt    "   "Department"   "tt    "   "Password");
pw.println(First_Name     "ttt    "   Last_Name   "tt    "   Address   "tt    "   E_mail   "t    "   Department   "ttt    "   Password);  
pw.close();
  

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

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

2. Да, может быть. В этом случае проверка на существование — это правильный путь.

3. @mkasberg, большое ВАМ спасибо, наконец-то это сработало, спасибо и за mr.crusha ^^

4. @ToqaYousri ~ добро пожаловать в stackoverflow! рад видеть, что вам предоставили решение, здесь принято затем «принимать» ответ. это делается с помощью галочки, которую вы должны увидеть в левой части этого ответа. наслаждайтесь!