黑马程序员技术交流社区

标题: PrintStream中的printlln()方法 [打印本页]

作者: 黑马李刚    时间: 2011-9-6 20:28
标题: PrintStream中的printlln()方法
PrintStream中的方法println()方法不是有打印的功能能吗,运行下面的程序:先向命令行输入字符串,回车后并没有打印出 <所输入字符串> 的大写形式(请先运行此程序再回答),xiexie.:victory:  :victory:[code=java] import java.util.*;
import java.io.*;
class L
{
public static void main(String args[]) throws IOException
{
     BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
     PrintWriter pw=new PrintWriter(System.out);
     String line=null;
     while ((line=bufr.readLine())!=null)
     {
           pw.println(line.toUpperCase());
     }
     pw.close();
     bufr.close();
}
}
[/code]
[ 本帖最后由 黑马李刚 于 2011-09-06  20:29 编辑 ]
作者: 匿名    时间: 2011-9-6 20:59
标题: 回复 楼主 的帖子
报告楼主,您的程序在我输入字符之前就已经结束运行了
作者: 匿名    时间: 2011-9-6 21:11
哈哈,不会吧?(我又运行了一遍,不ctrl+c是不不会结束的)
作者: 匿名    时间: 2011-9-6 21:15
PrintWriter pw=new PrintWriter(System.out,true);  

你少了个true ,没有这个它不会主动刷新缓冲区
作者: 匿名    时间: 2011-9-6 21:17
ps ; 如果你用BufferedWriter 的话, 就要自己flush( ) 和 newline()
作者: 匿名    时间: 2011-9-6 21:30
我给你改了一下 这样看的更清楚 为什么要用while循环呢 应该用if 啊 readLine()不是读取一行么[code=java]import java.util.*;
import java.io.*;
class L{
        public static void main(String args[]) throws IOException{
        BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
        PrintWriter pw = new PrintWriter(System.out);
        String line = null;
        System.out.print("请输入:");
        if ((line=bufr.readLine())!=null){
                        pw.println("输入的字符为:" + line.toUpperCase());
                }
        pw.close();
        bufr.close();
        }
}[/code]




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2