为什么我无法编译这个java代码?

时间:2012-06-13 19:30:11

标签: java compilation javac

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.");
            }
        }
    }
}

当我在命令提示符中编译此代码时,我收到错误

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)"

我从书中复制了整个代码。

4 个答案:

答案 0 :(得分:4)

适合我的工作:)

你引用的文字后面有一个悬挂} ...确保你有匹配的大括号...

答案 1 :(得分:2)

源代码中有11个{个字符和12个}个字符。

找到丢失的{或删除不需要的}

答案 2 :(得分:0)

尝试在文件末尾添加},您似乎错过了一个。

答案 3 :(得分:0)

使用JDK 1.7.0_01为我编译好。