2014-11-17 4 views
0

인쇄 할 데이터와 통계가 100 개가 넘습니다. 나는 다음을 사용하고있다 :시스템 및 PrintWriter로 인쇄

PrintWriter p = new PrintWriter(fileName); 

시스템과 파일 (약 50 줄) 모두에 인쇄해야하기 때문에 약 100 줄의 이유가있다. 내 코드를 인쇄하고 "미리 인증"하는 짧은 방법이 있습니까?

System.out.println("Prints Stats"); //To System 
p.println("Prints Stats"); //To File 
etc 

시스템에 인쇄 된 모든 줄에는 파일에 인쇄 된 줄이 완전히 똑같습니다. 두 개를 결합하거나 더 짧게 만들 수있는 방법이 있습니까? 또는 나는이 "못생긴"긴 지루한 지문을 붙잡 았을 까?

+0

가능한 중복 : [콘솔 및 텍스트 파일에 쓰기] (http://stackoverflow.com/questions/16237546/writing-to-console-and-text-file) – Pshemo

+0

[Logger] (https : //docs.oracle.com/javase/7/docs/api/java/util/logging/Logger.html) ... – Mena

+0

모든 것이 잘 작동합니다. Pshemo, 나는 단지 그것을 간결하게하는 방법을 찾고 싶습니다. – MrAwesome8

답변

1

이렇게하는 방법에는 여러 가지가 있습니다. 텍스트의 톤을 작성하지 않는 경우 등 그 안에 물건을 삽입, 여기에 추가하여 출력을 생성하기 위해 StringBuilder을 사용할 수 있습니다, 그리고 준비가되면, 그것을 인쇄하여 StringBuilder

를 사용

pSystem.out 모두 이다

private void println(String s) { 
    System.out.println(s); 
    p.out.println(s); 
} 

:

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() 방법을 사용하는 경우, 당신은 두 작가를 위해 그것을 호출하는 자신 만의 방법을 쓸 수있는 자신의 작성 p은 로컬 변수가 아닌 필드입니다.

형식를 사용하는 대신 당신이 printf() 또는 format() 방법을 사용할 수 println()를 사용

. 첫 x 째 매개 변수는 형식화. 자열이며 형식. 자열을 사용하여 한 인쇄 내에서 여러 행을 형식화 할 수 있습니다. 예를 들어 :

String formatString = "Name: %s%nSurname: %s%nAge: %d%n"; 
Object[] arguments = { "Susan", "Carter", 30); 

p.printf(formatString, arguments); 
System.out.printf(formatString, arguments); 

이것은 인쇄 것입니다 :

System.out.printf("Name: %s%nSurname: %s%nAge: %d%n", "Susan", "Carter", 30); 

Name: Susan 
Surname: Carter 
Age: 30 

그리고 당신이 많은 println의에 저장이 printf의를 사용할 수있는 동일한 형식 문자열을 사용하여

인쇄시겠습니까 세 줄의 출력을 파일로 출력 한 다음 System 출력으로 출력합니다.

+0

감사합니다. 필자는 printlnf라고하는 자체 인쇄 방법을 사용하여 가장 편리한 방식으로 많은 코드를 정리할 수있었습니다. 또한 콘솔 출력을 사용하여 파일. 감사! – MrAwesome8