Java PrintWriter构造方法及print、println若干小问题
1、PrintWriter(Writerout,booleanflush)的意思不是有创建新的PrintWriter,它将数据写入out流中的意思?如果有,那什么时候才将...
1、PrintWriter(Writer out,boolean flush)的意思不是有创建新的PrintWriter,它将数据写入out流中的意思?如果有,那什么时候才将数据写入out流中?
2、为什么PrintWriter out=new PrintWriter(System.out,true); out.println("Hello World");能输出,但是out.print("Hello world")却不能。
被IO流搞得乱乱的,麻烦大家解答一下。 展开
2、为什么PrintWriter out=new PrintWriter(System.out,true); out.println("Hello World");能输出,但是out.print("Hello world")却不能。
被IO流搞得乱乱的,麻烦大家解答一下。 展开
2个回答
展开全部
print()中是没有调用flush()的!你用print()就必须在后面用flush()函数
而println()中调用了flush()的 当你创建对象的时候设为自动刷新true的话 println就能输出而 设为false都不行的
//print 源代码
public void print(String s) {
if (s == null) {
s = "null";
}
write(s);
}
//println源代码
public void println() {
newLine();//这里调用了newLine();
}
//newLine源代码
private void newLine() {
try {
synchronized (lock) {
ensureOpen();
out.write(lineSeparator);
if (autoFlush)//这里就调用了 刷新缓冲流了
out.flush();
}
}
catch (InterruptedIOException x) {
Thread.currentThread().interrupt();
}
catch (IOException x) {
trouble = true;
}
}
而println()中调用了flush()的 当你创建对象的时候设为自动刷新true的话 println就能输出而 设为false都不行的
//print 源代码
public void print(String s) {
if (s == null) {
s = "null";
}
write(s);
}
//println源代码
public void println() {
newLine();//这里调用了newLine();
}
//newLine源代码
private void newLine() {
try {
synchronized (lock) {
ensureOpen();
out.write(lineSeparator);
if (autoFlush)//这里就调用了 刷新缓冲流了
out.flush();
}
}
catch (InterruptedIOException x) {
Thread.currentThread().interrupt();
}
catch (IOException x) {
trouble = true;
}
}
更多追问追答
追问
那麻烦能不能解释一下PrintWriter(Writer out,boolean flush)这个构造方法中out的作用?
追答
out 这里 你可以写所以继承了Writer的类!比如FIleWriter(把数据可以写入文件的流)
还可以写 OutputStringWriter 等多得很 !
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询