2014-09-06 4 views
4
boolean valid = false; 
String user = txtUser.getText(); 
String pass = txtPass.getText(); 
try { 
    PrintWriter writer = new PrintWriter("src/file"); 
    writer.println("The line"); 
    writer.println(user + "#" + pass); 
    JOptionPane.showMessageDialog(null,"Sign Up"complete",JOptionPane.INFORMATION_MESSAGE); 
    writer.close(); 
} catch(Exception e) { 
} 

Я делаю подписную страницу, и я уже сделал страницу входа. Номер в коде используется для разделения имени пользователя на пароль. Все работает нормально, но проблема заключается в том, что каждый раз, когда я регистрирую его, он заменяет информацию о регистрации, которую я дал в предыдущий раз. Поэтому, если я впервые подписался с именем пользователя «greg» и паролем «877», он отлично работает, но если я снова займу программу и зарегистрирую другого пользователя с другим именем пользователя и паролем, он заменит первое имя пользователя и пароль , Мне нужно, чтобы он переходил на новую строчку после того, как каждый раз подписывался.Как распечатать новую строку в java?

+0

Мы можем помочь, если вы создаете минимальный пример. См. [Как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve). – DavidPostill

+1

Терминология, которую вы ищете, это «как добавить строки к существующему файлу». – Pointy

+1

@DavidPostill Я думаю, главная проблема заключается в том, что 'PrintWriter' всегда будет создавать файл. –

ответ

5

Wrap файл с FileWriter первым:

PrintWriter writer = new PrintWriter(new FileWriter("src/file", true)); 

Вот описание для конструктора FileWriter(String, boolean):

конструирует FileWriter данный объект имя файла с логическое значение, указывающее, следует ли добавьте записанные данные.

Параметры

fileName - Строка зависит от системы файла.
append - Логическое если true, то данные будут записываться в конец файла, а не в начале

0

вы используете public PrintWriter(File file) для записи в файл

javadoc говорит -

parameter specifies the file to use as the destination of this writer. If the file 
exists then it will be truncated to zero size; otherwise, a new file will be created. 
The output will be written to the file and is buffered. 

Так что в вашем случае вам необходимо добавить текст к содержимому существующего файла, так как Luiggi сказал FileWriter ваш друг

FileWriter, a character stream to write characters to file. By default, it will 
replace all the existing content with new content, however, when you specified a 
true (boolean) value as the second argument in FileWriter constructor, it will keep 
the existing content and append the new content in the end of the file. 

попробовать таким образом

PrintWriter outputFile = new PrintWriter(new FileWriter("src/file", true)); 
+0

Спасибо вам обоим за помощь, отлично работая сейчас :) – greg

Смежные вопросы