0

我有两个要打印到单独文件的数组。这是我的代码:

    try {
      PrintStream out = new PrintStream(new FileOutputStream(
          "Edges.txt"));
      for (i = 0; i < bcount; i++) {
        out.println(b[i][0] + " " + b[i][1]);
      }
      out.close();

    } catch (FileNotFoundException e) {
      e.printStackTrace();
    }



    } catch (Exception ex) {
    ex.printStackTrace();
    }

    try {
      PrintStream out = new PrintStream(new FileOutputStream(
          "Nodes.txt"));
      for (i = 0; i < bigbIter; i++) {
        out.println(bigb[i]);
      }
      out.close();

    } catch (FileNotFoundException e) {
      e.printStackTrace();
    }



    } catch (Exception ex) {
    ex.printStackTrace();
    }

如果我只使用第一组try/catch/catch,就完美了。但是当我同时使用它时它不起作用,给我错误“类型的非法开始......} catch”和“错误:预期的类,接口或枚举”。我究竟做错了什么?

4

2 回答 2

5
} catch (FileNotFoundException e) {
  e.printStackTrace();
}



} catch (Exception ex) {
ex.printStackTrace();
}

你有一个 extra },它会抛出解析器并给你很多错误。

于 2012-12-19T16:41:59.040 回答
1

您应该编写一个写入文件的方法。只需传递文件名和数据。你应该看到你有太多的右括号,让你的 IDE 突出显示括号。

教训就是不要复制/粘贴,然后在您再次需要时编辑 catch 块!

编辑:同样在java 7中你可以在一个块中有多个catch,最好这样做:

catch (FileNotFoundException | IOException e)
{
}
于 2012-12-19T16:45:19.573 回答