java中while嵌套if的问题

2024-12-15 18:07:35
推荐回答(3个)
回答1:

你的bis.read()方法在while条件中执行一次,在if条件中执行一次,不是2次吗?当然把两行读完了。你可以用个变量记录bis.read();的结果,这样就没问题了吧。如下:
FileReader fis=new FileReader("Sha0k.txt");
BufferedReader bis = new BufferedReader(fis);
boolean result=bis.read();
while(result!=-1)
{
num++;//记录文件中字符数
if(result==13)
num2++;//记录文件中行数

result=bis.read();
}

回答2:

你调用了两遍bis.read()当然不行了。
应该是
int str = 0;

while(str!=-1)
{
num++;//记录文件中字符数
if(str==13)
num2++;//记录文件中行数
}

回答3:

你这样当然不行啦,呵呵!
char tmp;

while( (tmp=bis.read()) != -1 )
{
num++;
if((int)tmp==13)num2++;
}