2013-05-17 54 views
-4
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)。任何人都可以輕鬆幫助我克服這個問題嗎?編譯時出現'非法啓動類型'

+0

它是單個'/' – Geros

+4

如果你理性地縮進你的代碼,你會看到你的最後兩個catch塊被連接到'main'方法,而不是你的try塊。 – Cairnarvon

+1

@ system32不會導致此錯誤... –

回答

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

我編輯你的代碼和固定縮進 - 這是當你寫,你應該做的每一次你碼。正如您現在所看到的,您正在關閉try-catch塊,然後執行更多代碼。

然後你正在關閉該方法 - 之後,你有你的catch(FileNotFoundException e)。這個catch塊在方法完成後出現 - 所以無論是成員變量還是其他方法都是預期的 - 因此你會得到這個錯誤。因爲我不知道你的邏輯,我不能告訴你它需要什麼 - 但現在的方式,這是絕對錯誤的。

0

您的代碼無法工作,您忘記聲明「fileinputstream」,並且您的try-catch無效。您嘗試在兩個catch-Blocks之間編寫代碼。