try{
String matrixFilePath=LotteryNumberUtils.getMatrixPath("S6",reds.size(),cse);
if (logger.isDebugEnabled())logger.debug("----"+matrixFilePath+"----");
File matrixFile=new File(matrixFilePath);
if(!matrixFile.exists())return this.message("***");
fis=new FileInputStream(matrixFile);
fc=fis.getChannel();
ByteBuffer buffer = ByteBuffer.allocateDirect(1024);
CharBuffer charBuffer = CharBuffer.allocate(1024);
Charset charset = Charset.forName("UTF-8");
CharsetDecoder decoder = charset.newDecoder();
while (fc.read(buffer) != -1) {
buffer.flip();//写出前操作
//while (buffer.hasRemaining()) {//枚举byteBuffer中的数据
decoder.decode(buffer, charBuffer, false);
charBuffer.flip();
if (logger.isDebugEnabled())logger.debug("----"+charBuffer+"----");
//}
buffer.clear();//读入前操作
charBuffer.clear();
}
} catch (FileNotFoundException ffe){
if (logger.isDebugEnabled())logger.debug("----"+ffe.getMessage()+"matrix file not found");
return this.message("***");
} catch (IOException e) {
if (logger.isDebugEnabled())logger.debug("----file read error matrix----");
e.printStackTrace();
} finally {
try {
if(fc!=null)fc.close();
if(fis!=null)fis.close();
} catch (IOException e) {
if (logger.isDebugEnabled())logger.debug("----stream close error----");
e.printStackTrace();
}
}
参考:
http://java.sun.com/developer/technicalArticles/releases/nio/#Resources
http://www.blogjava.net/cherishchen/archive/2010/07/13/326000.html
http://www.cnblogs.com/focusj/archive/2011/11/03/2231583.html