今天在网上搜了好多,有的说是空格符有的说是结束符,搞得我晕头转向。还有比如下面这段代码: <%@  page contentType="text/html;charset=gb2312" import="java.io.*"%> 
<html> 
<head> 
<title>向文件写入数据</title> 
</head> 
<body> 
<center> 
<% 
   try{ 
      FileOutputStream fos=new FileOutputStream("c://Tomcat 5.5//webapps//ROOT//JSP//file5.dat"); 
  DataOutputStream dos=new DataOutputStream(fos); 
  dos.writeInt(1234567890); 
  dos.writeLong(1234567890); 
  dos.writeShort(31234); 
  dos.writeFloat(112.234f); 
  dos.writeDouble(144.145); 
  dos.writeChars("你好北京"); 
  } 
  catch(IOException e){ 
    out.println("文件发生错误"); 

 try{ 
   FileInputStream fis=new FileInputStream("c://Tomcat 5.5//webapps//ROOT//JSP//file5.dat"); 
   DataInputStream dis=new DataInputStream(fis); 
   out.println("整型:"+dis.readInt()+"<br>:"); 
   out.println("长整型:"+dis.readLong()+"<br>:"); 
   out.println("浮点型:"+dis.readFloat()+"<br>:"); 
   out.println("双精度:"+dis.readDouble()+"<br>:"); 
   out.println("整型:"+dis.readShort()+"<br>:"); 
   char c; 
         while((c=dis.readChar())!='\0'){ 
   
    out.println©; 


catch(IOException ee) 

   out.println(); 
   } 
   %> 
   </center> 
   </body> 
   </html> 中的“while((c=dis.readChar())!='\0')”这句怎么解释呀,'\0'如果是空格符,空格符的解释是不是说"存储的是一个空的字符串呀”。'\0'为什么不可以换成"null"或" "哪? 
        

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【gjk11】截止到2008-07-01 13:18:48的历史汇总数据(不包括此帖):
    发帖数:8                  发帖分:220                
    结贴数:8                  结贴分:220                
    未结数:0                  未结分:0                  
    结贴率:100.00%            结分率:100.00%            
    敬礼!
      

  2.   

    while((c=dis.readChar())!='\0')等价于while((c=dis.readChar())!=0)”\0 表示结束符,比如C语言的数组中,最后有个默认的 \0 表示结束
    \0 不是空格,' ' 才是空格
    "" 就是“一个空的字符串”
      

  3.   

    \O代表了你的这个字符串的结束,while... 这句话就是说,循环的获得字符串的每个字符直到结束,这个貌似很好理解的啊
      

  4.   

    结束符 是0x13
    空格 是0x20
    ascii 是这样写的
      

  5.   

    "while... 这句话就是说,循环的获得字符串的每个字符直到结束"我怎么理解不了呀,"!="的意思不是"不为...,不是...."的意思吗。按照我的理解"while....“的意思不是说循环获得的字符串不结束吗?唉,实在理解不了呀,为什么我换成"32"和"0*20“空格符也可以编译哪。
      

  6.   

    程序可以编译但不一定能够正常运行。\0标识一个文件流的结束。也可以理解为文件的结束。这个while的意思就是“一直读取文件中的内容,直到把文件读完为止”,而当你把这个改成了32后,它的意思就变成“一直读取文件中的内容,直到遇到一个空格为止”。