import java.io.*;public class IOUse
{
public static void main(String[] args)
{
int b;
int count=0;
try
{
//标准输入读入数据
while((b=System.in.read())!=-1)
{
count++;
System.out.print((char)b);
}
}
catch(IOException e)
{
System.out.println(e);
}
System.out.println();
//向标准输出打印数据
System.out.println("counted "+count+" total bytes.");
}
}
为什么数据打印不出啊,奇怪的事,谢谢帮忙~~~~~~~~~~~
{
public static void main(String[] args)
{
int b;
int count=0;
try
{
//标准输入读入数据
while((b=System.in.read())!=-1)
{
count++;
System.out.print((char)b);
}
}
catch(IOException e)
{
System.out.println(e);
}
System.out.println();
//向标准输出打印数据
System.out.println("counted "+count+" total bytes.");
}
}
为什么数据打印不出啊,奇怪的事,谢谢帮忙~~~~~~~~~~~
解决方案 »
- getInputSteam的问题
- Console的输出顺序问题
- 请教swing问题:如何能让table中的表格在内容超出表格宽度时,自动换行,并完全显示出来???
- java如何处理图片
- 根据日期(20050907)获得这是星期几?
- 为什么有mouseClicked,而没有mouseDoubleClicked事件呢?
- 能具体讲一下吗?(我是新手)
- 有一个问题关于JTree
- 有关Java的数组的一个问题
- 菜鸟求救:我在写一个类,这个类的构造函数返回一个boolean值,我在使用这个类时,是这样写的“.................
- java如何获得windows操作系统的当前窗口
- PreparedStatement 的 executeUpdate 问题
你的工具的问题吧
它采用的是ASCALL码
从输入流读取下一个数据字节。返回 0 到 255 范围内的 int 字节值。如果因已到达流末尾而没有可用的字节,则返回值 -1。在输入数据可用、检测到流的末尾或者抛出异常前,此方法一直阻塞。
因此
while((b=System.in.read())!=-1)
{
count++;
System.out.print((char)b);
}
在输入B的值后,回车, 才能进入while方法体中
while((b=System.in.read())!='q')
注意: System.in.read接收的是字节0-255返回的是ASCII码
你这while里面一直阻塞,所以不会输出后面的count值
{
count++;
System.out.print((char)b);
}
的死循环了!
System.in.read()是在键盘上读取一个字节,你一直敲键盘,它就永远在里面循环,你可以设置一个条件,如while((b=System.in.read())!= 'a'),只要敲a,就跳出循环了
还有,用你这种统计敲入字节次数的方法不好,因为敲一次回车算2个字节,也就是说,如果你先敲s,再敲a(按我前面的方法跳出循环),它所统计的count次数是s(1字节)+回车(2字节)+a(0字节,因为在while((b=System.in.read())!= 'a')判断中已不成立,跳出了循环)
干脆土点,count结果直接减1就是统计结果!