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)"
我从书中复制了整个代码。
答案 0 :(得分:4)
适合我的工作:)
你引用的文字后面有一个悬挂} ...确保你有匹配的大括号...
答案 1 :(得分:2)
源代码中有11个{
个字符和12个}
个字符。
找到丢失的{
或删除不需要的}
。
答案 2 :(得分:0)
尝试在文件末尾添加},您似乎错过了一个。
答案 3 :(得分:0)
使用JDK 1.7.0_01为我编译好。