为了账号安全,请及时绑定邮箱和手机立即绑定

请问finally关闭流时遇到Syntax error on token "finally",

请问finally关闭流时遇到Syntax error on token "finally",

千万里不及你 2019-03-07 14:15:50
要做的例子是:一个文本文件,每一行都是0到100的整数,要查看每个数字在文件中出现的次数。我的思路是先获取key为数字,value为次数的map,但是在方法里用finally关闭流遇到问题,可是到finally这步总报错,下面代码  try {     fr=new FileReader(s); } catch (FileNotFoundException e) { } br=new BufferedReader(fr); Map<Integer, Integer> map=new HashMap<Integer, Integer>(); String line=null; for(int i=0;i<100;i++)//对所有行可能的数字进行迭代 {     int num=0;     try     {         while((line=br.readLine())!=null)//按行读缓冲区         {             if(Integer.parseInt(line)==i)             {                 num++;             }         }            }     catch(IOException e){/*处理异常*/}     map.put(i, num); } finally //此处报错(Syntax error on token "finally", delete this token) {     try     {         if(br!=null)             br.close();//关闭流     } catch (IOException e)     {     } } 我google一下finally,说是只能跟在try或catch之后,可是要是碰到我这种状况怎么办呢?
查看完整描述

5 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

try
{
fr=new FileReader(s);
Map map=new HashMap();
String line=null;
for(int i=0;i<100;i++)//对所有行可能的数字进行迭代
{
int num=0;
while((line=br.readLine())!=null)//按行读缓冲区
{
if(Integer.parseInt(line)==i)
{
num++;
}
}

map.put(i, num);
}

} catch (Exception e1)
{
e1.printStackTrace();
}finally
{
try
{
if(br!=null)
br.close();//关闭流
} catch (IOException e)
{
}
}


查看完整回答
反对 回复 2019-04-26
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

finally 块必须与 try 或 try/catch 块配合使用。你想要关闭流就要在for循环中的catch代码块之后将这个finally代码块复制过去


查看完整回答
反对 回复 2019-04-26
?
MM们

TA贡献1886条经验 获得超2个赞

你这是编译错误啊,finally的语法是这样的:

try{

} catch (Exception e){

} finally {

}


查看完整回答
反对 回复 2019-04-26
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

语法错误 改成如下即可
[code="java"]
try
{
fr=new FileReader(s);
br=new BufferedReader(fr);
Map map=new HashMap();
String line=null;
for(int i=0;i<100;i++)//对所有行可能的数字进行迭代
{
int num=0;
try
{
while((line=br.readLine())!=null)//按行读缓冲区
{
if(Integer.parseInt(line)==i)
{
num++;
}
}

}
catch(IOException e){/*处理异常*/}
map.put(i, num);
}

} catch (FileNotFoundException e)
{
}

finally //此处报错(Syntax error on token "finally", delete this token)
{
try
{
if(br!=null)
br.close();//关闭流
} catch (IOException e)
{
}
}


查看完整回答
反对 回复 2019-04-26
  • 5 回答
  • 0 关注
  • 944 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信