import java.io.*;
public class IODemo15{
public static void main(String args[]) throws Exception{
InputStream in = null;
in = System.in;
String str = "";
int c = 0;
while((c= in.read()) != -1){
str = str+(char)c;
}
in.close();
System.out.println("输出的内容为:"+str);
}
}
import java.io.*;
public class IODemo15{
public static void main(String args[]) throws Exception{
InputStream in = null;
in = System.in;
String str = "";
//int c = 0;
while(( in.read()) != -1){
str = str+(char)(in.read());
}
in.close();
System.out.println("输出的内容为:"+str);
}
}
第二个输出内容很奇怪.两个程序应该是一样的啊??
D:\java>java IODemo15
dsfsdf
输出的内容为:ssf

解决方案 »

  1.   

    while(( in.read()) != -1){ 
    str = str+(char)(in.read()); 你read()了两遍,所以输出的内容都是空缺的!
      

  2.   

    你2个程序的输出都应该是空吧!
      System.out.println("输出的内容为:"+str); 
            打印的都是String str = ""; 
      

  3.   

    不知道啊,没运行,他那个程序是在CMD里面运行的吧
      

  4.   

    对于dsfsdf 这个
    第一次read,返回一个d,但你没有接受   “while(( in.read()) != -1){” 
    第二次read,返回一个s,你接受了 str="s";   ” str = str+(char)(in.read()); “
    第三次read,返回一个f,但你没有接受     “while(( in.read()) != -1){” 
    第四次read,返回一个s,你接受了 str="ss";  ” str = str+(char)(in.read()); “
    第五次read,返回一个d,但你没有接受     “while(( in.read()) != -1){” 
    第六次read,返回一个f,你接受了 str="ssf";  ” str = str+(char)(in.read()); “
    所以你的结果是ssf
      

  5.   

    仿佛也许明白了....意思“while(( in.read()) != -1){” 只接受13579..... 
     str = str+(char)(in.read()); “ 只接受24681012.....
    造成的对么呵呵谢谢你啊.不过做人得公平你和第一个一人十分吧.好人一生平安啊 呵呵..
      

  6.   

    你点背.11
    http://topic.csdn.net/u/20080509/13/e76fd479-e057-4568-891a-398222a9dc0a.html?seed=379829663
    把这个回答了我给你分啊