2011-05-10 36 views
3

任何人都可以通過在Java中提供不同於System.out.println()語句的打印方式來幫助我嗎?System.out.println()的備用語句

+3

但還是打印到標準輸出?你爲什麼試圖避免System.out.println? – 2011-05-10 05:31:16

+0

我只想學習不同的方式。是否可以使用文件? – hari 2011-05-10 05:34:28

+0

另外,我不能使用屬性文件? – hari 2011-05-10 06:10:54

回答

4
import org.apache.log4j.Logger; 
.... 
public class example{ 

static Logger log = Logger.getLogger(this.class); 

..... 
public void test(){ 
String hello ="Hello World"; 
log.trace(hello); 
} 
.... 
} 

output will be : 
TRACE:(<classname>){2011-10-38-06:644} Hello World 2011-05-10 08:38:06,644 
+1

應該注意的是,爲了這個工作,你的項目對Log4j有依賴性,並且必須正確配置'log4j.properties'。 – darioo 2011-05-10 05:53:26

+0

如果你找不到這個jar文件,你必須將log4j-1.2.14.jar添加到你的項目中,在這裏輸入你的電子郵件,我會將它發送到你的電子郵件 – 2011-05-10 07:28:10

2

System.err.println()用於在控制檯上打印。或創建自己的打印流對象,然後打印到文件,數據庫或控制檯。

4

這可能對你有幫助。

import java.io.*; 
class Redirection { 
    public static void main(String args[]) throws IOException { 
     PrintStream pos = new PrintStream(new FileOutputStream("applic.log")); 

     PrintStream oldstream=System.out; 
     System.out.println("Message 1 appears on console"); 
     System.setOut(pos);     
     System.out.println("Message 2 appears on file"); 
     System.out.println("Message 3 appears on file"); 
     System.out.println("Message 4 appears on file"); 
     System.setOut(oldstream); 
     System.out.println("Message 5 appears on console"); 
     System.out.println("Message 6 appears on console");   
    } 
} 
3

備用打印方法:

System.out.print("message\r\n"); 
System.out.printf("%s %d", "message" , 101); // Since 1.5 

您還可以通過使用基於該平臺輸出的東西在控制檯上的特殊文件使用常規的IO文件操作:

PrintWriter pw = new PrintWriter("con"); // Windows 
PrintWriter pw = new PrintWriter("/dev/tty"); // *nix 

pw.println("op"); 
0

可以通過將鼠標放在單詞上解決它,彈出窗口將出現向下滾動並選擇JAVA.LANG.SYSTEM。它將解決問題,您的代碼將運行。

0

你可以嘗試以下辦法:

1.

System.err.print("Custom Error Message"); 

2.

System.console().writer().println("Hello World"); 

3.

System.out.write("www.stackoverflow.com \n".getBytes()); 

4.

5.

PrintStream myout = new PrintStream(new FileOutputStream(FileDescriptor.out)); 
myout.print("www.stackoverflow.com \n"); 
0

您也可以嘗試代碼System.out.printf();