Есть несколько способов сделать это.
Использование StringBuilder
Если вы не пишете тонны текста, вы можете использовать StringBuilder
для создания своего вывода, добавляя к нему, вставляя в него что-то и т. Д., А когда он будет готов, распечатайте его как в p
, так и в System.out
.
StringBuilder b = new StringBuilder();
b.append("Name: ").append("Susan").append("\n");
// Append more stuff to b, also insert and delete from it if you want.
System.out.print(b);
p.print(b);
Написание собственного println()
Если вы используете только метод println()
, вы можете написать свой собственный метод, который вызывает его для обоих авторов:
private void println( String s ) {
System.out.println(s);
p.out.println(s);
}
То есть, если предположить, что p
— это поле, а не локальная переменная.
Использование формата
Вместо использования println()
вы можете использовать методы printf()
или format()
. Первый параметр — это строка форматирования, и вы можете отформатировать несколько строк в одном отпечатке, используя строку формата. Например:
System.out.printf( "Name: %s%nSurname: %s%nAge: %d%n", "Susan", "Carter", 30 );
Будет печатать
Name: Susan
Surname: Carter
Age: 30
И, используя одну и ту же строку формата, вы можете использовать два printf
, чтобы сэкономить на многих println
:
String formatString = "Name: %s%nSurname: %s%nAge: %d%n";
Object[] arguments = { "Susan", "Carter", 30 );
p.printf( formatString, arguments );
System.out.printf( formatString, arguments );
Это напечатает приведенный выше трехстрочный вывод в ваш файл, а затем в вывод вашей системы.
person
RealSkeptic
schedule
17.11.2014
System.out.println
и распечатать его в консоли и в файле (так что вам не понадобятся дополнительные строки, которые будут вызыватьp.println
). - person Pshemo   schedule 17.11.2014