您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Java >> 一个让我困惑的小问题

一个让我困惑的小问题

来源:网络整理     时间:2016/6/23 1:34:57     关键词:

关于网友提出的“ 一个让我困惑的小问题”问题疑问,本网通过在网上对“ 一个让我困惑的小问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 一个让我困惑的小问题
描述:

代码如下:
 try{
    int ch=0;
    StringBuffer sb=new StringBuffer(1024);
    while((ch=is.read())!=-1)
    {
       sb.append((char)ch);
       System.out.println(sb.toString());
     }
      System.out.println(sb.toString());
     }
 上面的几行代码,为什么第一个输出语句能够输出内容,而第二个输出语句却没有输出内容,怎样改动才能够在while()循环体外输出读取到的数据流的内容。 


解决方案1:

你针对的是索爱的手机吧。。。。你把is.read()换成is.readfully(byte[])就可以了

解决方案2:

  try {
 fc=(FileConnection)Connector.open(des, Connector.READ_WRITE);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();

DataInputStream ips=fc.openDataInputStream(); 
try{ 
    int ch=0; 
    StringBuffer sb=new StringBuffer(1024); 
    while((ch=ips.read())!=-1) 
    { 
      sb.append((char)ch); 
      System.out.println(""+ch); 
    } 
      System.out.println("000000000000000000000000"); 
    } catch(Exception e){}
我读的没什么问题啊。每次都会执行到00000000000000000000

解决方案3:

try{ 
    int ch=0; 
    StringBuffer sb=new StringBuffer(1024); 
    InputStream is = this.getClass().getResourceAsStream("/asd.txt");
    DataInputStream dis = new DataInputStream(is);
    while((ch=dis.readByte())!=-1) 
    { 
      sb.append((char)ch); 
      System.out.println(sb.toString()+"jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj"); 
    } 
      System.out.println(sb.toString()+"kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"); 
}
catch(Exception e)
{
e.printStackTrace();
}
我是这么实验的,抛了个EOF,也就是读到流末尾了,所以没输出第二行,也就是带 KKKKKKKKKKKKKKKK的

解决方案4:

System.out.println(sb.toString()); 
2句里面的参数都是sb.toString().换成别的试试.比如+个"con = "+sb.String()
你在while里面把sb赋值给另外一个stringbuffer.然后在循环外面输出那个buffer试试看

解决方案5:

没看出啥问题来,把第二个换成输出1、2之类的试试看是语句的错误还是sb.toString()的错误

解决方案6:

这句话  while((ch=is.read())!=-1) 错了吧!
你想判断什么


以上介绍了“ 一个让我困惑的小问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1991257.html

相关图片

相关文章