当前位置: 网站首页>小程序开发>网站制作

澧县网站制作要多少钱【域名企业邮箱服务器注册申请办理】澧县网络优化公司哪家好、澧县软件开发外包价格、澧县高端企业网站页面制作设计专业公司、澧县微信公众号小程序购物支付搭建制作公司

发表日期: 2021-03-27 09:41:52 浏览次数:113

澧县网站制作要多少钱【域名企业邮箱服务器注册申请办理】澧县网络优化公司哪家好、澧县软件开发外包价格、澧县高端企业网站页面制作设计专业公司、澧县微信公众号小程序购物支付搭建制作公司

澧县,隶属于湖南省常德市,因澧水贯穿全境而得名,位于长江中游,湖南省西北部,洞庭湖西岸,与长江直线距离80公里。梁敬帝绍泰元年(555)始置澧州。隋开皇九年(公元589年)罢天门郡,置澧州,新置澧阳县。2015年,全县辖4个街道、15个镇,境内气候适宜,地貌多样,水面广大。澧县拥有澧阳平原(湖南省最大的平原)绝大部分,面积2107.3平方公里。粮、棉、油、猪、鱼是澧县五大农业支柱产品。

澧县是全国商品粮基地县、全国优质棉基地县、全国油菜生产百强县、国家农业可持续发展实验示范区、全国葡萄标准化栽培示范基地、国家新型城镇化综合改革试点县、国家中小城市综合改革试点县、国家卫生县城、中华诗词之乡、湖南省文明县城、湖南省园林县城、湖南省经济强县、湖南省全面小康”十快进县”。 [1]  有国家级文物保护单位13处,以城头山、彭头山、鸡叫城、八十垱、十里岗、丁家岗为核心的澧阳平原史前文化遗址群已由国家向联合国申请世界文化遗产,其中城头山古文化遗址发现了中国最早的、距今6000年的古城址、古祭坛和古稻田。2015年被列为第二批国家新型城镇化综合试点地区。 [2] 

第一批国家农业可持续发展试验示范区。 [3-4]  2019年12月31日,入选全国农村创新创业典型县。 [5]  2021年1月29日,入选湖南省人民政府公布的2020年度真抓实干成效明显的地区名单。

16.3.4 使用字节缓冲流

BufferedInputStream和BufferedOutputStream称为字节缓冲流,使用字节缓冲流内置了一个缓冲区,第一次调用read方法时尽可能多地从数据源读取数据到缓冲区,后续再到用read方法时先看看缓冲区中是否有数据,如果有则读缓冲区中的数据,如果没有再将数据源中的数据读入到缓冲区,这样可以减少直接读数据源的次数。通过输出流调用write方法写入数据时,也先将数据写入到缓冲区,缓冲区满了之后再写入数据目的地,这样可以减少直接对数据目的地写入次数。使用了缓冲字节流可以减少I/O操作次数,提高效率。

从图16-3和图16-4可见,BufferedInputStream的父类是FilterInputStream,BufferedOutputStream的父类是FilterOutputStream,FilterInputStream和FilterOutputStream称为过滤流。过滤流的作用是扩展其他流,增强其功能。那么BufferedInputStream和BufferedOutputStream增强了缓冲能力。

提示 过滤流实现了装饰器(Decorator)设计模式,这种设计模式能够在运行时扩充一个类的功能。而继承在编译时扩充一个类的功能。

BufferedInputStream和BufferedOutputStream中主要方法都是继承自InputStream和OutputStream前面两个节已经详细介绍了,这里不再赘述。下面介绍一下它们的构造方法,BufferedInputStream构造方法主要有:

  • BufferedInputStream(InputStream in):通过一个底层输入流in对象创建缓冲流对象,缓冲区大小是默认的,默认值8192。

  • BufferedInputStream(InputStream in, int size):通过一个底层输入流in对象创建缓冲流对象,size指定的缓冲区大小,缓冲区大小应该是2的n次幂,这样可提供缓冲区的利用率。

BufferedOutputStream构造方法主要有:

  • BufferedOutputStream(OutputStream out):通过一个底层输出流out 对象创建缓冲流对象,缓冲区大小是默认的,默认值8192。

  • BufferedOutputStream(OutputStream out, int size):通过一个底层输出流out对象创建缓冲流对象,size指定的缓冲区大小,缓冲区大小应该是2的n次幂,这样可提高缓冲区的利用率。

下面将16.3.3节的文件复制的案例改造成缓冲流实现,代码如下:

     //FileCopyWithBuffer.java文件
     package com.a51work6;

     import java.io.BufferedInputStream;
     import java.io.BufferedOutputStream;
     import java.io.FileInputStream;
     import java.io.FileNotFoundException;
     import java.io.FileOutputStream;
     import java.io.IOException;

     public class FileCopyWithBuffer {

         public static void main(String[] args) {

             try (FileInputStream fis = new FileInputStream("./TestDir/src.zip");            ①
                     BufferedInputStream bis = new BufferedInputStream(fis);                 ②
                     FileOutputStream fos = new FileOutputStream("./TestDir/subDir/src.zip");③
                     BufferedOutputStream bos = new BufferedOutputStream(fos)) {             ④

                 //开始时间
                 long startTime = System.nanoTime();                ⑤
                 // 准备一个缓冲区
                 byte[] buffer = new byte[1024];                    ⑥
                 // 首先读取一次
                 int len = bis.read(buffer);

                 while (len != -1) {
                     // 开始写入数据
                     bos.write(buffer, 0, len);
                     // 再读取一次
                     len = bis.read(buffer);
                 }

                 //结束时间
                 long elapsedTime = System.nanoTime() - startTime;  ⑦
                 System.out.println("耗时:" + (elapsedTime / 1000000.0) + " 毫秒");

             } catch (FileNotFoundException e) {
                 e.printStackTrace();
             } catch (IOException e) {
                 e.printStackTrace();
             }
         }
     }复制代码

上述代码第①行是创建文件输入流,它是一个底层流,通过它构造缓冲输入流,见代码第②行。同理,代码第④行是构造缓冲输出流。

为了记录复制过程所耗费的时间,在复制之前获取当前系统时间,见代码第⑤行,System.nanoTime()是获得当前系统时间,单位是纳秒。在复制结束之后同样获取系统时间,代码第⑦行用结束时的系统时间减去复制之前的系统时间,elapsedTime就是耗时了,但是它的单位是纳秒,需要除以106才是毫秒。

提示 在程序代码第⑥行也指定了缓冲区buffer,这个缓冲区与缓冲流内置缓冲区不同,决定是否进行I/O操作次数的是缓冲流内置缓冲区,不是这个缓冲区。

为了比较,可以将16.3.3节的案例也添加耗时输出功能,代码如下:

     //FileCopy.java文件
     package com.a51work6;
     ...
     public class FileCopy {

         public static void main(String[] args) {

             try (FileInputStream in = new FileInputStream("./TestDir/src.zip");
                     FileOutputStream out = new FileOutputStream("./TestDir/subDir/src.zip")) {

                 //开始时间,当前系统纳秒时间
                 long startTime = System.nanoTime();
                 // 准备一个缓冲区
                 byte[] buffer = new byte[1024];
                 // 首先读取一次
                 int len = in.read(buffer);

                 while (len != -1) {
                     // 开始写入数据
                     out.write(buffer, 0, len);
                     // 再读取一次
                     len = in.read(buffer);
                 }

                 //结束时间,当前系统纳秒时间
                 long elapsedTime = System.nanoTime() - startTime;
                 System.out.println("耗时:" + (elapsedTime / 1000000.0) + " 毫秒");

             } catch (FileNotFoundException e) {
                 e.printStackTrace();
             } catch (IOException e) {
                 e.printStackTrace();
             }
         }
     }复制代码

FileCopy与FileCopyWithBuffer复制相同文件src.zip,缓冲区buffer都设置1024,那么运行的结果:

     FileCopyWithBuffer耗时:94.927181 毫秒
     FileCopy耗时:206.087523 毫秒复制代码

可能每次运行稍有不同,但是可以看出它们的差别了,使用缓冲流的FileCopyWithBuffer明显要比不使用缓冲流的FileCopy速度快。

16.4 字符流

上一节介绍了字节流,本节详细介绍一下字符流的API。掌握字符流的API先要熟悉它的两个抽象类:Reader和Writer,了解它们有哪些主要的方法。

c51c866ffa1ab3457f2021e8bbdbcc1.jpg


澧县网站制作要多少钱域名企业邮箱服务器注册申请办理澧县网络优化公司哪家好、澧县软件开发外包价格、澧县高端企业网站页面制作设计专业公司、澧县微信公众号小程序购物支付搭建制作公司

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: http://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878