怎么在这个while执行前算出循环次数
public static void crypt(InputStream in, OutputStream out)throws Exception
{
byte[] inBytes = new byte[8];
int inLength = 0;
boolean more = true;
while (more)
{
inLength = in.read(inBytes);
if (inLength == 8)
{
//...
}
else
more = false;
}
}
如题,我要用它来更新一个ProgressBar
------解决方案--------------------没明白啥意思 我也是菜鸟~
------解决方案--------------------你是不是要读文件,感觉可以先取文件的大小,然后算读入的byte,通过读入的byte和文件大小的比例来更新ProgressBar
------解决方案-------------------- int i= 0;//循环次数
while (more) {
i++;
System.out.println( "i= " + i);
inLength = in.read(inBytes);
if (inLength == 8)
{
//...
}
else
more = false;
}
}
------解决方案--------------------//while执行前算出循环次数
int count = is.available()/8+1;
//....
------解决方案--------------------你的逻辑有问题
------解决方案--------------------没办法。
!=8的时候才退出
天知道要执行多少次.....
------解决方案--------------------。。 知道这个有啥用?
------解决方案--------------------你在干啥那??
读文件不是这样读的....
byte[] buffer = new byte[1024];
int readSize = 0;
while((readSize = is.read(buffer) != -1){
...
}
用Stream读文件的话,read返回当前读取到缓冲区的字符数
如果剩余字符大于缓冲区,返回的是缓冲区大小
如果剩余字符小于缓冲区,返回的是读取到的字符数
如果文件已经读完,返回 -1
直接判断是不是返回 -1 就行了