tomcat 启动爆慢的问题解决一例

tomcat里面部署了大概6个虚拟站,每次启动的时候,需要大概30分钟才能启动,有时还会出问题。

观察日志输出,首先是卡在了 jar文件的扫描上面,提示TLDs神马的,google之,修改catalina.properties:

tomcat.util.scan.DefaultJarScanner.jarsToSkip=*.jar

跳过扫描,可以缩短大概一半的时间(到15分钟左右)。

 

继续观察,发现每次卡住的提示,貌似都是在数据库连接池前面,而且我发现,其中两个网站分开部署时,一个快一个慢。仔细对比后发现,速度快的那个,是用127.0.0.1作为服务器地址,而慢的那个是服务器的域名。于是尝试将域名改为127.0.0.1,发现慢的那个站的启动速度直接变成了1秒!!!

 

这样,原来需要30分钟启动的过程,现在变成了10秒内!我还是怀恋PHP+APACHE的环境,热部署,内置多种解决方案,根本不可能出现tomcat的这么多蛋疼问题。tomcat的设计,根本就没考虑到各种特殊状况,与apache完全不在一个档次!

(转)东方不败与诗诗——柔情种种说不尽

看到这篇博文,才觉得以前的电影真是心血之作
转自:http://blog.sina.com.cn/s/blog_497e4f9d0101avcz.html#commonComment

东方不败与诗诗——柔情种种说不尽

《笑傲江湖之东方不败》,东方不败从男人到女人,与令狐冲相识相交相知,与诗诗和江山渐行渐远。

我很喜欢东方不败的男声配音,别具阴柔之美。女声配音第一句过于温柔了,难怪会吓倒日日陪侍的爱妾诗诗。假设你的恋人突然有一天变成了同性,或者告诉你它成了同性恋,那一刻你是怎样的情绪呢?想来,配音的人也是煞费苦心。初次开口无论怎样都会吓坏柔弱的诗诗,既然如此,索性温柔点,也许她会念在往昔的柔情蜜意上体谅自己吧?此时的东方不败,我深信她对诗诗存在幻想,渴望她能接受现在的自己。那一行眼泪,是最好的证明。

诗诗,在东方不败的生活里、情感里扮演着什么样的角色?她重要吗?如果重要,有多重要?

诗诗第一次出场,是东方不败临阵对敌时。对方如临大敌,这边是美人醇酒,高下立判。看过《康熙微服私访记》吗?一部又一部,为什么康熙微服总是带着宜妃而不是其它妃子?诗诗,是特别的。她身上穿着《葵花宝典》,比东方不败性命更重要的东西。多少人为争抢它丧命,这个弱女子却天天穿着它。

诗诗的第二次出场,是东方不败戏弄俘虏时。众女环饲,只有她依偎在他怀里,东方不败摩挲着她的脸颊,慢条斯理的威胁汉犬。这是诗诗戏份较多的一场戏,能说明很多东西的一场戏。老问题,审问俘虏用得着带女人吗?带的话,带谁说明什么问题?《珠光宝气》里众姨太争宠,后宫戏中妃子无不渴望皇帝的垂青临幸,你说这场戏,诗诗为什么会在?她玩火枪,借后挫力软在东方不败怀里;看飞蛾扑火,东方不败杀人后拥着她遮着她的眼睛,她安抚东方不败“不要生气”。换个人,在这种场合,敢说话吗?敢说这句话吗?

诗诗第三次出场,是向东方不败求欢的戏,一场非常重要的戏。先赞一个,东方不败随意半躺在地上铺着的被褥上,一手支头,一手摇晃着酒壶。这时的东方不败非常的自在,也非常的随性美丽,颇有些怡然自得。林没有说一句话,仅通过肢体语言我们就能看得出东方不败心情很好,在想高兴的事。诗诗的温香软玉送上前,抚摸着她的脸,“教主,你练了葵花宝典之后,虽然是男人之身,可是皮肤却越来越嫩滑了。”东方不败脸色骤变,“哼”了一声,瞪着诗诗。领略过教主杀人时眼神的人,你从这眼神中看到杀意了吗?没有,真正杀人的眼神比这更加的凌厉,令人不敢直视。可以把这个眼神和东方不败向诗诗摊牌后的眼神作比较。在这里诗诗吓得身体后退,但是双膝应该还在地上没有移动位置。这是人受惊后正常的反应,后退的距离与吃惊的程度成正比。接下来她的台词验证了她的地位和分量,“教主,你怎么用这么凶的眼神看着我?”所谓娇嗔,即是如此吧?和摊牌之后诗诗跪地乞求相比较便可知道,此时东方不败并没有真正动怒。只不过,诗诗确实说中了她的心事。

东方不败练葵花宝典的动力是什么?自宫时,他是否犹豫过?任我行仰天狂笑,因为得知东方不败舍弃了男人的象征,他说葵花宝典是个笑话,东方不败更是个天大的笑话。聪明绝顶,精于计算的东方不败,他想过自宫后别人会如何看他,自己的身体会发生怎样的变化吗?为什么他还是自宫练功?东方不败说了三个负心人,第一个是“天下人”;第二个是诗诗,第三个是令狐冲。东方不败,他在追求什么,他在渴望什么?江山?他弃属下如敝履杀之如蝼蚁。苗人的千秋伟业?反叛者格杀勿论自相残杀毫不容情绝不手软。令狐冲的感情?他不过是要诗诗陪令狐冲一夜叫他永远忘不了她,既没有跟着令狐冲到牛背山归隐,也没有说“不管我变成什么样,永远都会记得你”。东方不败,是一个连他自己都解不开的谜团,他不知道他想要什么。他只是随性摸黑往前走,走到哪算哪。他不会为了谁停留他的脚步。

然而,东方不败仍有恐惧和不安。他失去了男人的象征,他的皮肤越来越光滑,他对一个男人产生了好感想起他时会微微笑心情很好。身体上越来越明显的变化,难道不会无时无刻提醒着他,拷问着他,“我是日出东方唯我不败的东方不败,可我这……是怎么了?”所以他才会有那样的眼神,台词,“以后,我不准你再提我变。”这时表情已经柔和了很多,语气也并不格外凌厉。过渡的表情是安抚性质的笑,温和中带着金戈铁马的铿锵意味,他坐起来,谈起天下大事,“苗人被汉人视为贱民,”爱抚诗诗的脸,“今朝我们所做的一切,都是光耀苗人后世的功业。”

东方不败拥美人谈江山,诗诗的情绪得到安抚,拥抱他,向他认错,“婢妾目光短浅,以为教主半年没有和我同床共枕,已经厌弃了婢妾的温柔,忘记了天下还有我诗诗这个人。”从语气上看,雨过天晴,教主不凶了,诗诗撒娇了,两人的相处回归到和谐模式;从内容上看,之前东方不败至少没有半年不宠幸诗诗的前科,反证了诗诗的特别性。教主轻拍诗诗的背,感叹,“我为天下人洒血断头,可是天下又有几人记得我东方不败。其实负心的,应该是天下人。”诗诗不是单纯的泄欲工具,而是可以说说心里感触的人。这个人,怎能不重要?此时的东方不败,并没有把诗诗算进“负心的天下人”里,她是听自己感慨世事的爱妾。诗诗既问且劝,“何必为了这些负心人呢?”此时的诗诗,也没有把自己当成东方阵线以外的人。两个人一个像老公,在外面做事受气不被理解很委屈;一个像老婆,倾听丈夫的心声陪他说说心里话排遣情绪。东方不败并不怀疑诗诗能理解他的心声,他大概因此心怀幻想,才会有后来的摊牌吧。

“哈哈哈”,东方不败豪迈的笑,很酷的将怀里的诗诗放倒,看着她念了句伟人的豪情诗,“所谓江山如此多娇,引无数英雄竞折腰。”他搔诗诗的痒痒,诗诗在被褥上翻滚着笑。这就纯属调情了,闺房之乐。此时,气氛非常的融洽。不速之客至,两人正互捧着对方的脸,估计接下来准备要玩亲亲。东方不败听到外面的异动叮嘱诗诗,“有稀客,到密室回避一下。”诗诗自他怀里离开,注意他的手是跟着诗诗起来而移动,并不是骤然将她推开。不管让诗诗回避是为了藏人还是藏葵花宝典,这个细节的动作包含了柔情在。

诗诗的第四次出场,是东方不败和服部千军讨论俘虏令狐冲的处置。诗诗在东方不败身后,犹如藤缠树,柔情似水的依偎着他,好像在做推拿按摩。东方不败手执酒杯,神情很是受用,“此人有用,我自有打算。”服部千军说,令狐冲是为了一个人而来。诗诗的特写镜头,东方教主托住她的小脸,认真地问,“为了她?”可见诗诗的美貌,东方不败是认可的。“他是为了教主而来。”东方不败一怔,仰天大笑。诗诗或许没听懂日语的对白,看见东方不败笑得那么豪放敞亮,她也笑了。“为了我?”东方不败的笑声拐了几道弯,整个人乐不可支,想必对这个有些意外的答案很中意。东方不败回望诗诗,仍是笑。诗诗跟着笑,为他扇风。以他的欢笑为欢笑,这就是诗诗。也由此可见,诗诗对东方不败的理解,只是一部分。她知道他什么时候心情好,却不知道他为什么心情好。

诗诗的第五次出场,是东方不败向她摊牌。描眉涂胭脂,外形和声音彻底女性化。东方不败留给诗诗的是背影,精心打扮过的诗诗呈献《东方山河图》,满心欢喜期待得到嘉奖,起码能博他一笑。“预祝教主早日登基。”红衣,黑发,白图,喜悦的笑,这就是诗诗,此刻的心情不言而喻。女装东方不败转过身,《东方山河图》吓得掉在地上,诗诗本人跌坐在地,身体大幅度向后,极度惊讶,失声道,“你的样子!”注意,是“你”而不是“教主”。她撞翻了油灯,《东方山河图》起火,心血成灰。

东方不败的声音是完全的、纯粹的女性化,整部影片中此前和此后再不曾有过如此温柔。“你不要害怕。”一上来就安抚诗诗的情绪,诗诗的表情惊讶大于恐惧,哀伤甚于绝望。她还想求证,此处仍然用“你”,省略了敬称,“你的声音怎么会变成这样?是不是练葵花宝典把你变成这样的?”身体语言仍然是后退,眼前的事实带给她的打击逐步被确认,受到的伤害进一步在增大。东方不败略微起身,语气仍然是温柔的,语言是极具安抚性质的用海誓山盟形容亦不为过的甜言蜜语,“无论我变成怎样,都不会忘记我的爱妾诗诗。”她没有站起来直接逼近,而是通过在地上移动的方式缓慢的接近诗诗,表情十分柔和,像在哄一个受到惊吓的小动物。诗诗仍然是后退,望着燃烧的《东方山河图》,哀哀念道,“江山如此多娇,”此时已经眼中含泪,目光缓缓转向东方不败,读着两人昔日情浓时他念过的诗,“引无数英雄竞……折……腰……”

东方不败柔和的表情有了变化,挥袖扑灭图上的火,语气也带上了往昔教主的色彩,干脆果决,告知意味的解释,“现在你应该明白了,”她的身体微微前倾,看着流泪的诗诗,语气转柔但与刚才安抚她的纯粹温柔已有所不同,大概她判断诗诗已经接受了现实,现在是读答案的时候,“我为什么不和你同床。”至此,诗诗的地位已毋庸赘述。东方不败有必要对泄欲的工具、《葵花宝典》的藏宝匣温柔吗?有必要安抚她吗?有必要对她解释自己的所作所为吗?

东方不败对诗诗的感情十分复杂,并非是肉欲、爱情、利用那么简单。他心中某个柔软的角落,诗诗曾经碰触过,在那里留下了痕迹。东方不败对她抱有期待,那期待已经如此直白,“无论我变成怎样,都不会忘记我的爱妾诗诗。”诗诗在意他半年不和她同床,诗诗在意他是否忘记了天下还有诗诗这个人,当时他没有明确回答。今天这番表现表明,当日东方不败听到了诗诗的在意,今日也对这种在意做出了回复,他在意诗诗。正因为在意,所以渴望得到诗诗的认同。那句“无论我变成怎样,都不会忘记我的爱妾诗诗”翻译过来就是,“无论我变成什么样,你都会爱我如昔吗?”他心怀奢望,渴望她的肯定和认可——即使他变成了女人,诗诗对他的爱并不会改变。然而,他并不自信,所以他用了“忘记”这个词。如果他坚定,那么表白应该是“无论我变成怎样,你永远都是我的爱妾诗诗。”在摊牌前,他一定有心理活动,对于诗诗可能有的反应也做了估计,包括拒绝的反应。如果诗诗拒绝,他就放她走,这是一早东方不败就下定的决心。

因为太过渴望,所以会过分敏感,格外容易受伤。诗诗对他的表白的反应是,收住眼泪爬起来进里间找火源脱衣服烧宝典。东方不败的柔情仍在,从他三次扑灭诗诗要烧宝典的火源就能看出来。要阻止诗诗,一根绣花针足够,何必三次熄灯!诗诗见烧不了宝典,干脆动手想撕烂衣服。东方不败神情冷峻,从地上缓缓站起,声音里带了严厉,伸出手,“拿来。”诗诗仍不理智的想撕衣服,东方不败一手夺过来,诗诗摔出门——仅仅是摔出房间的门而不是摔到大厅里。东方不败这分明是怒了,怒而不杀甚至不重伤,不是因为感情又是什么?

东方不败蹲下来,缓缓扫视手中的宝典,质问——语气是伤心而不是愤怒,这点非常重要。“我把比我性命还重要的宝典交给你,你要烧了它?”

“有刺客!”守卫们听到里边的动静,想冲进来护主,结果两拨九个人连脸都没看清就全死在绣花针下。有人曾经问,诗诗呆在杀人如麻的东方不败身边难道不害怕?起初可能会怕,相处久了就不会怕。因为从刚才为止,东方不败已经多次对诗诗手下留情,未来还会如此。东方不败不但是个聪明绝顶精于计算的家伙,还是个十分会讨女人欢心的男人。他能发现女人的情绪波动,也会进行安抚哄逗,他并不是一个残暴冷漠的男人。

杀人时东方不败的眼神是果决的。诗诗害怕了,挣扎着想从地上起来,她想喊但发不出成调的声音。这并不是她第一次看到东方不败杀人,猿飞日月的惨状也不能令她如此动容,彼时东方不败搂了她遮住她的眼睛她甚至还向他撒娇,请他“不要发脾气(生气)。”令她惊恐的,应该是东方不败眼中溢出的一行泪。日出东方,唯我不败,除了诗诗,谁曾看到过这个男人的眼泪?谁曾聆听过“我为天下人洒血断头,天下人又有几个记得我东方不败?”连令狐冲也不曾。

“原来你跟天下人一样,”声音是冷冽断肠的,伤感却不带杀气,“全是这么负心。”没有感情,感情若不深厚,东方不败会因为诗诗的反应流泪?别说男儿有泪不轻弹,令狐冲负心,东方不败可曾流泪?

诗诗泣不成声,“教主……我……我知错了……”她扑过来想抱住东方不败,“我要永远跟随你!”东方不败后退了一步,他仍是不伤她,只是后退了一步。从前的深情,不管变成什么样都不会忘记的爱妾,已经成为了过去!

“哼,”伤感的笑,东方不败判断的结果是,“你不会的。”他仍是不杀她,“你走吧。”语气依然十分柔和。

诗诗哭着拽住他的长袍,“婢妾一时千头万绪,宁愿一死,也不愿教主不要我。”平心而论,诗诗说的是真心话。换了谁突然得知日日相守的情人变成了同性,也不会听完立即拊掌大笑,“太好了,我以后可以和你交换内衣穿!”她一时受了刺激,将东方不败的变化归咎于《葵花宝典》甚至要烧了它,倘若不爱东方不败,何必做这种明显会激怒杀人如麻的东方不败的事!就像丈夫有了外遇,女人往往归罪于万恶的小三而不会从丈夫身上找原因一样。从冲动到平复到接受现实,诗诗需要时间,可惜,留给她和东方不败的时间实在太短暂。东方不败指望摊牌后立刻得到她的认同,至少不要那么大的反应,她已经刺激了东方不败伤了他的心,覆水难收。

令狐冲来了。他来得太巧,东方不败来不及深思诗诗的情绪波动,诗诗来不及挽回东方不败往日的柔情。

“真巧,我也为了人心难测,跟你一样感慨世事。”这句话既是说给令狐冲,也是说给诗诗听。令狐冲邀她归隐牛背山。她转身问诗诗,“你真的愿意为我死?”声音温柔依旧,这回却是报复和利用了。

诗诗用力点头表决心。东方不败柔声道,“不用死。我要你代我陪令狐冲一宵。”“啊?”诗诗惊诧得连表情都凝固了。不仅仅是因为代陪令狐冲,更因为东方不败这么安排就意味着,她再也不会是东方不败怀里的女人了。

东方不败关上门拖起地上的诗诗,托着她的下巴,此时依稀可见东方不败脸上泪痕未干。“别让他发觉你是冒充的,我要他永远记得我。”这时的语气,既不是命令也不是威胁,更不是乞求,而是再平常不过。就像他把酒壶送给令狐冲,不带丝毫留恋。诗诗能准确解读东方不败的情绪,尽管她不明白他为什么高兴为什么不高兴。此时,想必诗诗已经确凿无疑的了解到,自己已经被东方不败抛弃。诗诗要是此刻服毒自杀,东方不败无可奈何,令狐冲也拦不住,黑灯瞎火谁知道她喝的是毒是酒?即便手边没有毒药,嚼舌自尽也不是为一种办法。

诗诗没有这么做。“世事难测,人生苦短,大家都是同道中人。只求一宵,何必多问。”她和令狐冲翻云覆雨,喃喃呼唤的是“教主,教主”。有女声念了两声“诗诗”,难道是诗诗有话要说?东方不败边和人打斗边喊了一声“令狐冲”,听起来不像是她喊的诗诗。这个估计跟看到的版本有关吧。这两次诗诗的镜头都十分的短暂。

诗诗的第六次出场,是东方不败屠戮归来。诗诗重新梳妆,打扮得很漂亮,穿着也很正式,完全没有和别人滚完床单衣衫不整春意氤氲的模样。东方不败回来看见她,脸上闪过吃惊的表情,稍微后退但又没有往后移动脚步,只是站住了不再前进。这很符合东方不败的性格,他要是大惊小怪的人才奇怪了。他大概惊讶,怎么自己已经那样羞辱了诗诗,她为何还不走?诗诗就像听见了他心里的疑问,说道,“教主,我没有走。”她的表情是安详,“我很开心(吐黑血),终于等到你回来了。”再吐一口黑血,右手中的毒药瓶缓缓掉落,人摔倒,死不瞑目。我想,她之所以委身于令狐冲,仅仅因为她要完成教主的吩咐,这是她最后能为他做的一件事。

东方不败站着没动,身体略微摇晃,眼里有泪光闪过。从此之后,再没有一种柔情叫诗诗。

freemarker 实现自定义标签的方法

freemarker 实现自定义标签的方法 :
  1. 使用  <macro></macro>  宏定定义标签
  2. 实现  TemplateDirectiveModel的 execute() 方法,写相应的Java代码(这种方式更加的灵活)
 
使用 TemplatedirectiveModel 的 execute 方法 来实现自定义标签 
(1)页面调用和对于的实现类关系
          
 
(3) 参数说明:
    1. environment : 是环境变量,在这里我们可以拿到 通过  environment.getOut  拿到 Write 。
    2. map :这里我们可以等到参数,这里的参数是以 键值对的形式存在的。
    3. templateModel : 是所以数据类型的顶级接口,我们  可以通过  templateMole[i]  通过这个i变量来返回我们指定的第几个参数的返回值。
    4. templateBody : 是标签开始和结束的 内容 ,通过这个对象的 render()方法我可以接着执行 自定义标签里的 其他标签(freemarker内置标签或者我们自定义标签)
 
 
  (整数:TemplateNumberModel * ,字符串:TemplateScalarModel,boolean:TemplateBooleanModel 等), * 所以利用map.getValue(……)返回的是一个TemplateModel类型的数据,需转换成int类型数据。
注意:environment 是代表的当前freemarker运行环境,例如freemarker是和spring MVC 结合的,那么他就能拿到 spring MVC中的一些 DataAndView的值

微信公众平台更改域名后需要做的工作

1 公众号设置,功能设置,JS接口安全域名、网页授权域名
2 基本配置/ 填写服务器配置 : 业务域名设置,JS接口安全域名,网页授权域名(等同于接口权限 网页服务 网页授权 )
3 有用支付的,设置商户平台的产品中心 开发配置 支付配置

java格式化时间使用的模式字母大全

字母    含义                类型          表现形式

G    Era 标志符             Text          AD
y    年                    Year        1996; 96
M    年中的月份             Month     July; Jul; 07
w    年中的周数             Number        27
W    月份中的周数           Number         2
D    年中的天数             Number        189
d    月份中的天数           Number        10
F    月份中的星期           Number         2
E    星期中的天数           Text      Tuesday; Tue
a    Am/pm 标记             Text          PM
H    一天中的小时数(0-23)   Number         0
k    一天中的小时数(1-24)   Number        24
K    am/pm 中的小时数(0-11) Number         0
h    am/pm 中的小时数(1-12) Number        12
m    小时中的分钟数         Number         30
s    分钟中的秒数           Number        55
S    毫秒数                Number        978
z    时区          General time zone   Pacific Standard Time; PST; GMT-08:00
Z    时区          RFC 822 time zone      -0800

使用提醒:字母大小写敏感

java API 写文本文件比较 FileOutputStream, BufferedOutputStream, FileWriter

http://xiaofan-0204.iteye.com/blog/1317668

最近项目中要用到对大文件进行操作,做了下JAVA io方面的测试

对于java.io包中的FileOutputStream,BufferedOutputStream和FileWriter三个不同类写入到文本文件性能,
测试代码和结果如下:
环境: 机器ibm thinkpad 61i,
配置:2.0G双核CPU,2G内存,操作系统xp sp2,java api1.5.

Java代码  收藏代码
  1. import java.io.BufferedOutputStream;
  2. import java.io.File;
  3. import java.io.FileOutputStream;
  4. import java.io.FileWriter;
  5. public class TestTxtWriter {
  6.     public TestTxtWriter() {
  7.     }
  8.     public static void main(String[] args) {
  9.         FileOutputStream out = null;
  10.         FileOutputStream outSTr = null;
  11.         BufferedOutputStream Buff = null;
  12.         FileWriter fw = null;
  13.         int count = 10000000;// 写文件行数   
  14.         try {
  15.             out = new FileOutputStream(new File(“D:/FileOutputStream.txt”));
  16.             long begin = System.currentTimeMillis();
  17.             for (int i = 0; i < count; i++) {
  18.                 out.write(“测试FileOutputStream,BufferedOutputStream和FileWriter,对文件写操作/r/n”.getBytes());
  19.             }
  20.             out.close();
  21.             long end = System.currentTimeMillis();
  22.             System.out.println(“FileOutputStream执行耗时:” + (end – begin) + ” 豪秒”);
  23.             outSTr = new FileOutputStream(new File(“D:/BufferedOutputStream.txt”));
  24.             Buff = new BufferedOutputStream(outSTr);
  25.             long begin0 = System.currentTimeMillis();
  26.             for (int i = 0; i < count; i++) {
  27.                 Buff.write(“测试FileOutputStream,BufferedOutputStream和FileWriter,对文件写操作/r/n”  .getBytes());
  28.             }
  29.             Buff.flush();
  30.             Buff.close();
  31.             long end0 = System.currentTimeMillis();
  32.             System.out.println(“BufferedOutputStream执行耗时:” + (end0 – begin0) + ” 豪秒”);
  33.             fw = new FileWriter(“D:/FileWriter.txt”);
  34.             long begin3 = System.currentTimeMillis();
  35.             for (int i = 0; i < count; i++) {
  36.                 fw.write(“测试FileOutputStream,BufferedOutputStream和FileWriter,对文件写操作/r/n”);
  37.             }
  38.             fw.close();
  39.             long end3 = System.currentTimeMillis();
  40.             System.out.println(“FileWriter执行耗时:” + (end3 – begin3) + ” 豪秒”);
  41.         } catch (Exception e) {
  42.             e.printStackTrace();
  43.         } finally {
  44.             try {
  45.                 fw.close();
  46.                 Buff.close();
  47.                 outSTr.close();
  48.                 out.close();
  49.             } catch (Exception e) {
  50.                 e.printStackTrace();
  51.             }
  52.         }
  53.     }
  54. }

以下结果经过多次执行,取常出现的数据,由于只是简单比较,不做详细统计。

1.当count=1 000的,即写文件1 000行的时候,写出的文件大小为66.4KB:
FileOutputStream执行耗时:31 豪秒
BufferedOutputStream执行耗时:16 豪秒
FileWriter执行耗时:0 豪秒

2.当count=10 000的,即写文件10 000行的时候,写出的文件大小为664KB:
FileOutputStream执行耗时:78 豪秒
BufferedOutputStream执行耗时:32 豪秒
FileWriter执行耗时:15 豪秒

3.当count=100 000的,即写文件100 000行的时候,写出的文件大小为6.7MB:
FileOutputStream执行耗时:453 豪秒
BufferedOutputStream执行耗时:172 豪秒
FileWriter执行耗时:156 豪秒

4.当count=1 000 000的,即写文件1 000 000行的时候,写出的文件大小为64.8MB:
FileOutputStream执行耗时:4500 豪秒
BufferedOutputStream执行耗时:2422 豪秒
FileWriter执行耗时:2500 豪秒

5.当count=10 000 000的,即写文件10 000 000行的时候,写出的文件大小为648MB:
FileOutputStream执行耗时:52453 豪秒
BufferedOutputStream执行耗时:25921 豪秒
FileWriter执行耗时:36094 豪秒

FileOutputStream执行耗时:51547 豪秒
BufferedOutputStream执行耗时:35203 豪秒
FileWriter执行耗时:31609 豪秒

FileOutputStream执行耗时:50078 豪秒
BufferedOutputStream执行耗时:33515 豪秒
FileWriter执行耗时:29516 豪秒

由以上数据可以看到,如果不用缓冲流BufferedOutputStream,FileOutputStream写文件的鲁棒性是很不好的。当写 10 000 000行的文件的时候,FileOutputStream比FileWriter要慢10 000-21 000毫秒(10-21秒)。

不要小看这几秒的时间。当操作的数据量很大的时候,这点性能的差距就会很大了。在操作数据库,通过java导出生成数亿条记录文件的时候,等待的时间要10分钟以上,性能相差大了。