关于网友提出的“ 一个让我困惑的小问题”问题疑问,本网通过在网上对“ 一个让我困惑的小问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 一个让我困惑的小问题
描述: 代码如下:
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