java NIO read file

    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

posted @ 2012-08-31 14:02  WenEric  阅读(516)  评论(0编辑  收藏  举报