瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          nio和io讀寫文件

          Posted on 2010-02-05 15:49 瘋狂 閱讀(813) 評論(0)  編輯  收藏 所屬分類: java


          nio:
          public static void testNio() throws IOException{
           long start = System.currentTimeMillis();
           FileInputStream in = new FileInputStream(new File("C:\\y.war"));
           FileOutputStream out = new FileOutputStream(new File("C:\\copy1.war"));
           FileChannel outc = out.getChannel();
           FileChannel inc = in.getChannel();
           ByteBuffer inb = ByteBuffer.allocate(1024*1024);//1m
           int i = 0;
           while(true){
            i++;
            System.out.println("第"+i+"次傳輸...");
            if(inb.position()>0){
             System.out.println("clear...");
             inb.clear();
            }
            if(inc.read(inb)==-1)break;
            inb.flip();
            outc.write(inb);
           }
           inc.close();
           outc.close();
           System.out.println("耗時:"+(System.currentTimeMillis()-start)+"毫秒");
          }

          io:
          public static void testIo() throws IOException{
           long start = System.currentTimeMillis();
           FileInputStream in = new FileInputStream(new File("C:\\y.war"));
           FileOutputStream out = new FileOutputStream(new File("C:\\copy2.war"));
           
           BufferedInputStream inc = new BufferedInputStream(in);
           BufferedOutputStream outc = new BufferedOutputStream(out);
           byte[] inb = new byte[1024*1024];//1m
           int i = 0;
           int l=-1;
           while(true){
            i++;
            System.out.println("第"+i+"次傳輸...");
            if((l=inc.read(inb))==-1)break;
            outc.write(inb,0,l);
           }
           inc.close();
           outc.flush();
           outc.close();
           System.out.println("耗時:"+(System.currentTimeMillis()-start)+"毫秒");
          }
          }
          同樣的16.4 MB的文件100次讀寫測試平均耗時:nio耗時:80毫秒 io耗時:105毫秒
          主站蜘蛛池模板: 文安县| 石狮市| 蒲城县| 泾源县| 珠海市| 法库县| 吉首市| 巴楚县| 毕节市| 开远市| 阿合奇县| 内丘县| 安平县| 三河市| 玉田县| 巍山| 武清区| 西畴县| 沈丘县| 高青县| 鞍山市| 汉源县| 浠水县| 兴安盟| 志丹县| 剑阁县| 乌拉特后旗| 临颍县| 鄂伦春自治旗| 永城市| 宽甸| 许昌市| 花莲市| 昆山市| 蓝山县| 巨鹿县| 五大连池市| 吉首市| 湖南省| 大冶市| 商水县|