java中如何得到控制台对象
我想用PrintWriter重构System.out输出,请问如何得到控制台对象代码:packageother;importjava.io.*;publicclassMy...
我想用PrintWriter重构System.out输出,请问如何得到控制台对象
代码:
package other;
import java.io.*;
public class Mysysout {
public static void main(String[] args) {
//Sysout.out.println("");
}
}
class Sysout{
//static PrintWriter out= new PrintWriter(在这里如何的到控制台的对象)
}
PrintWriter(OutputStream out)这个构造方法我知道,但是System.out是用PrintStream构建的,所以PrintWriter(System.out)相当于PrintWriter(new PrintStream out),这样效率会十分低下,因为PrintStream是线程同步的,我现在要测试一个大的代码块,里面有很多打印调试语句,我想用PrintWriter构造一个非线程同步的打印调试类,当代码块测试通过时,我只要把这个打印调试类中的方法设为空,即可取消打印调试,而不用一个一个地去删打印调试语句,这个可以实现吗? 展开
代码:
package other;
import java.io.*;
public class Mysysout {
public static void main(String[] args) {
//Sysout.out.println("");
}
}
class Sysout{
//static PrintWriter out= new PrintWriter(在这里如何的到控制台的对象)
}
PrintWriter(OutputStream out)这个构造方法我知道,但是System.out是用PrintStream构建的,所以PrintWriter(System.out)相当于PrintWriter(new PrintStream out),这样效率会十分低下,因为PrintStream是线程同步的,我现在要测试一个大的代码块,里面有很多打印调试语句,我想用PrintWriter构造一个非线程同步的打印调试类,当代码块测试通过时,我只要把这个打印调试类中的方法设为空,即可取消打印调试,而不用一个一个地去删打印调试语句,这个可以实现吗? 展开
4个回答
展开全部
static PrintWriter out= new PrintWriter(System.out);
PrintWriter需要java.io.OutputStream对象,System.out是java.io.PrintStream对象,是java.io.OutputStream的子类,所以这样就可以了。
补充:你这情况只能说你要测试的代码块不规范了。因为调试信息什么的我们都是打log的,而不是直接输出到控制台,这本身就是一个很慢的过程。另外,控制台本来就是设定为PrintStream对象,他又不需要多快,想解决这个方法,想用最初的OutputStream来加快速度,从控制台方面着手估计没招。
PrintWriter需要java.io.OutputStream对象,System.out是java.io.PrintStream对象,是java.io.OutputStream的子类,所以这样就可以了。
补充:你这情况只能说你要测试的代码块不规范了。因为调试信息什么的我们都是打log的,而不是直接输出到控制台,这本身就是一个很慢的过程。另外,控制台本来就是设定为PrintStream对象,他又不需要多快,想解决这个方法,想用最初的OutputStream来加快速度,从控制台方面着手估计没招。
展开全部
打酱油的
package com.lovo.t19_7_13;
public class Mytext {
static{
System.out.println("获得控制台输出对象");
}
}
class Text1{
public static Mytext create(){
return new Mytext();
}
}
class Text2{
Mytext dao=Text1.create();
}
package com.lovo.t19_7_13;
public class Mytext {
static{
System.out.println("获得控制台输出对象");
}
}
class Text1{
public static Mytext create(){
return new Mytext();
}
}
class Text2{
Mytext dao=Text1.create();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Console console = System.console();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
重构的目的是什么呢?
控制台,还少能用得到啊。
控制台,还少能用得到啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |