A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马李刚 黑马帝   /  2011-9-6 20:28  /  2548 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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 编辑 ]

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

5 个回复

倒序浏览
黑马网友  发表于 2011-9-6 20:59:29
沙发

回复 楼主 的帖子

报告楼主,您的程序在我输入字符之前就已经结束运行了
回复 使用道具 举报
黑马网友  发表于 2011-9-6 21:11:36
藤椅
哈哈,不会吧?(我又运行了一遍,不ctrl+c是不不会结束的)
回复 使用道具 举报
黑马网友  发表于 2011-9-6 21:15:27
板凳
PrintWriter pw=new PrintWriter(System.out,true);  

你少了个true ,没有这个它不会主动刷新缓冲区

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-6 21:17:27
报纸
ps ; 如果你用BufferedWriter 的话, 就要自己flush( ) 和 newline()

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-6 21:30:02
地板
我给你改了一下 这样看的更清楚 为什么要用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]

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马