#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! рад видеть, что вам предоставили решение, здесь принято затем «принимать» ответ. это делается с помощью галочки, которую вы должны увидеть в левой части этого ответа. наслаждайтесь!