2012-06-13 101 views
0
import java.io.*; 
import java.nio.ByteBuffer; 
import java.nio.channels.FileChannel; 

public class ExplicitChannelRead { 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     FileInputStream fIn = null; 
     FileChannel fChan = null; 
     ByteBuffer mBuf; 
     int count; 

     try{ 
      fIn = new FileInputStream("text.txt"); 

      fChan = fIn.getChannel(); 

      mBuf = ByteBuffer.allocate(128); 

      do{ 
       count = fChan.read(mBuf); 

       if(count!=-1){ 
        mBuf.rewind(); 

        for(int i =0; i<count; i++) 
         System.out.print((char) mBuf.get()); 

       } 
      }while(count!=-1); 

      System.out.println(); 
     }catch(IOException e){ 
      System.out.println("I/O Error : " + e); 
     }finally{ 
      try{ 
       if(fChan!=null) 
        fChan.close(); 
      }catch(IOException e){ 
       System.out.println("Error closing Channel."); 
      } 

      try{ 
       if(fIn!= null) 
        fIn.close(); 
      }catch(IOException e){ 
       System.out.println("Error closing file."); 
      } 
     } 
    } 
} 

當我編譯在命令提示符下這個代碼,我得到的錯誤爲什麼我無法編譯這個java代碼?

ExplictChannelRead.java:58:error:class, interface, or enum expected } 

當我編譯它在我的IDE我得到以下錯誤

"Exception in thread "main" java.lang.Error: Unresolved compilation problem: 

at nio_path.ExplicitChannelRead.main(ExplicitChannelRead.java:12)" 

我從一個複製整個代碼書。

+1

第58行是什麼?什麼是第12行? –

+0

您正在編譯的文件的名稱是什麼? – templatetypedef

+0

你有一個名爲text.txt的文件嗎? – Ryan

回答

4

工作正常,我:)

你有一個吊}你引用的文字後...請確保您有匹配的括號...

+0

它工作。我刪除它 –

0

嘗試在文件末尾添加a},您似乎缺少一個。

+0

我有一個額外的}。我刪了它。 –

+0

不,他應該刪除最後一個} – raym0nd

2

有11個{字符和12個}字符您源代碼。

找到缺失的{或刪除不需要的}

0

它使用JDK 1.7.0_01編譯得很好。

相關問題