编译时获取“非法启动类型”

时间:2013-05-17 09:16:07

标签: java compiler-errors

 public class WriteByteArrayToFile {
    public static void main(String[] args)
    {
        String strFilePath = "C://Program Files/Java/jdk1.7.0_23/bin//s.excel";
        try
        {
            FileOutputStream fos = new FileOutputStream(strFilePath);
            int numberBytes = fileinputstream.available();
            byte bytearray[] = new byte[numberBytes];
            fileinputstream.read(bytearray);
            for(int i= 0;i < numberBytes;i++)
            {
                System.out.println(bytearray[i]);
            }
            fileinputstream.close();
        }
        catch(Exception e)
        {
            System.out.println(e);
            MyReader mr = new MyReader();
            mr.ReadFile("side1-60.java");
        }

        String strContent = "side1-60.java ";
        fos.write(strContent.getBytes());
        fos.close();
    }
    catch(FileNotFoundException e)
    {
        System.out.println("FileNotFoundException : " + ex);
    }
    catch(IOException ioe) {    
        System.out.println("IOException : " + ioe);
    }
}

这是我的代码。我编译时收到错误illegal start of type,特别是在catch(FileNotFoundException e)。任何人都可以轻松帮助我克服这个问题吗?

3 个答案:

答案 0 :(得分:1)

代码只有一个try块。

 catch(Exception e)
                    {
                    System.out.println(e);
        MyReader mr = new MyReader();
        mr.ReadFile("side1-60.java");           
        }

//此代码导致问题,没有持续的catch块代码

    String strContent = "side1-60.java ";

     fos.write(strContent.getBytes());

     fos.close();

catch(FileNotFoundException f){
}

答案 1 :(得分:1)

我编辑了代码并修复了缩进 - 每次编写代码时都应该这样做。正如您现在所看到的,您正在关闭try-catch块然后执行更多代码。

然后你关闭了方法 - 之后你就拥有了catch(FileNotFoundException e)。方法完成后会出现此catch块 - 因此需要成员变量或其他方法 - 因此您会收到此错误。

由于我不了解你的逻辑,我不能告诉你它需要什么 - 但现在的方式,这肯定是错的。

答案 2 :(得分:0)

您的代码无法正常工作,您忘记声明“fileinputstream”并且您的try-catch无效。您尝试在两个catch-Blocks之间编写代码。