当前位置:  编程技术>移动开发
本页文章导读:
    ▪俞敏洪聊大学生活        俞敏洪谈大学生活1)大学女生必经15事!有些道理 我希望你也懂 1.要不断学习化妆穿衣,素颜美女是要拼年龄的,过了大二你便逐渐失去这个优势了,有精致的妆容和优雅的装扮,女孩和.........
    ▪ 俞敏洪途大学生活 "演讲&quot        俞敏洪谈大学生活 "演讲" 各位同学、各位领导: 大家上午好!(掌声) 非常高兴许校长给我这么崇高的荣誉,谈一谈我在北大的体会。(掌声) 可以说,北大是改变了我一生的地方,是.........
    ▪ Java资料的拆分与合并(二)       Java文件的拆分与合并(二)package cn.com; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.RandomAccessFile; //文件的拆分和组合 //步骤: //1 依据源文件大小和每块的大小计.........

[1]俞敏洪聊大学生活
    来源: 互联网  发布时间: 2014-02-18
俞敏洪谈大学生活
1)大学女生必经15事!有些道理 我希望你也懂
1.要不断学习化妆穿衣,素颜美女是要拼年龄的,过了大二你便逐渐失去这个优势了,有精致的妆容和优雅的装扮,女孩和熟女完美结合的你,也可以让别人一见钟情。记住:一味的标榜内涵而轻视门面也是一种肤浅,男人永远都是先看外表,不要期待他可以直接绕过外表发现你的内在美。 
2.除了闺密之外,要有一两个有点暧昧但可以称兄道弟的异性朋友,他会是你一辈子的大后方。他会警告你的男友:“如果你敢欺负她,我不会放过你。”他可以是精神百宝箱,也可以是精神垃圾桶。但切记:不要和他发生关系,否则你得到一个一夜情的男人,却可能永远失去一个好兄弟。 
3.在大学你会经历很多第一次,牵手,初吻.......。每走一步自己都要想清楚,对自己负责。这些都是你自己的财产,完全没必要随波逐流去改变什麽,除非你心甘情愿。如果毕业时你分手了,不必担心,你一定会碰到更加珍惜你的人。如果不是,也不必焦虑,现在已然是21世纪了,两个人合不合适没那麽简单。 
4.对毕业分手不要太在意,既然大学恋爱了,那么就有95的机会会上一堂分手课,告别了纯真,你会体验到社会的现实和残酷,会变得坚强和成熟。至少你曾经体验过了,努力过了,就没有遗憾了。顶着各自的一片天,好好活着,偶尔的想念活埋怨,也是一种幸福。
5.和男友出去吃饭时,不要因为自己是女孩就不愿意买单。更不要因为想让别人请你吃饭而出去,不吃那一顿饭,你会瘦,吃了那一顿,会多很多麻烦。另外中年男人,特指大款,请你吃饭唱歌泡吧,拒绝吧,你算计不过他们的,也不缺这一次。 
6.千万不要爱上有家室的男人,男人一旦有了家庭,就不该有的什么都有了,等到他们全家总动员时,你会死的很惨。 
7.不要因为钱去夜店工作,那些钱不会让你撑多久,却会让你失去自信甚至自卑。做一个挣钱少的零工,你会发现你完全可以不用那麽奢侈虚荣的生活,哪怕你吃碗面,都吃得理直气壮。
爱惜自己,别人才会爱惜你。 
8.不要以为女人吸烟很有魅力,对皮肤不好,而且显得很风尘。在安全适当的场合,可以练练酒量,以免自己不会被轻易灌醉。但在场上不要标榜自己多能喝,深藏不漏的人大有人在。在乎你的人是不愿意看到你喝的醉醺醺的。 
9.据说大学恋爱出现真爱的几率也是最高。不要非得找个梁朝伟金城武的,你也不是刘嘉玲。看一看他的的潜力,或许他是个绩优股。男生长相也就那样,看久了就顺眼了,出了校门你会发现别人会因为你漂亮而给你工作,却不会因为他长得帅而给他机会。长的帅有用吗?脸贴到atm机能取款,还是去超市能结账? 
10.要有积极的生活态度,不断提升自己的外在和内在,永远不要给自己的懒惰找借口,该干啥干啥去。不可因为任何事情自甘堕落,脑满肠肥。对形势怀有危机感,坦然接受努力所能及的尺度。做个睿智的女子,学会从容积极的面对生活,生活定会如你所愿。女人光鲜就那麽几年,以后拼的是道行不只是脸蛋。 
11.如果你上大学之前没谈过恋爱,那么不要随便开始一段感情,不要认为恋爱是调解无聊生活的上乘之举,你慢慢就会发现,什么才叫真正的烦。更不要因为想要一个免费饭票和免费车夫而开始,男生只是损失了金钱,而你损失的,就不说了。或许会让你后悔一辈子。 
12.不要整日沉浸在电脑那一部部浪漫的电视剧里,你不是灰姑娘,穿不上那么小的玻璃鞋。走到现实中去,哪怕去谈一场恋爱学到的都比电视里真实,爱的能力也是需要练习的。 
13.如果可以好好学习的话,尽量好好学习,取得高学历。男人可以不顾一切的在社会上摸爬滚打几年,总能混出人样。男人无所谓,有的是几年从头再来,女人有几个青春可以重来?而且高学历会给你带来舒适的工作以及所有人的尊重,包括未来婆婆的。 
14.要学会理财,精打细算为荣,乱吃零食为耻。不要再当月光族了,应该学会攒些嫁妆钱了。多锻炼一下自己,多赚点钱,让自己有点经济能力,不要还一心一意的要嫁个有钱人,拿别人的就要听别人的,看着别人的脸色的生活多半不会幸福,而且通常最后会发现那个有钱人其实很无趣。真正聪明的现代女性,可以做个有钱的女人,找个有趣的男人。 
15.多关心关心家人,了解他们的身体状况,不要总围着男友转。想好好发展的男友带给父母看一看,老人的眼睛有时候确实比我们的雪亮。整天耗费心思给男友买礼物还不如给父母多买几双袜子,他们更需要你的关心,无论你离他们多远,出嫁没有,你永远都是他们的女儿,家也永远是你休息和沉淀的港湾。 
(2)男孩子,请认真读完,记住这些,你一辈子会好一些,不要耐不住一点点小寂寞、
这是最重要的一点,请你记清楚,男孩子们。大学可以不恋爱的 “有人说:女生到社会上会遇到比学校更优秀的男生,而男生很难找到比在学校更好的女生,我现在告诉你,这句话你们都理解错了。这句话的意思是:男生在校园都还不成熟,19到25岁的男孩一般都比同龄女孩显得放不开,但到社会上,很快男人变的就优秀的多了,这说明大学几年是男生成熟的重要时期。而女生到社会变的实际了,于是就有了你们经常听到的那一句话!而我一直认为,清华大学比北京大学的男生优秀就在于清华大学的男生能学会等待!这也就是为什么清华出的国家领导人要远远多于北大。一个男人,是需要孤独的,如果你忍受不了孤独,只能说明你内心还不够强大!很多男生认为能证明自己的魅力在于自己有多少朋友,有多么漂亮的女朋友,那么我只能说你真的还需要成长,一个真正的优秀男人一定是朴实无华,甚至是谨小慎微的,一定是一个孤独者,因为只有静才能生智,而不是急!诸葛亮的戒子书中说:静以修身,俭以养德!如果在这一个男人最重要的几年中,你投资的是一个女人,那么你后边几十年里,你将不断的求着这个女人不要离开你。你如果投资的是自己,那么在剩下的几十年里,你会很顺利的收获真正属于你的爱情。记住:爱情是以物质为基础的奢侈的精神享受!
还有,我曾经在郑州大学说过怎么看一个男人是否将来会很优秀,那就是长的比我还要难看的,却能很自信的笑的男生。为什么,因为在大学中,这种男生一般不会太引人注意,他们更不会受到女生的青睐,于是,他们只能做好自己的事,来弥补被人冷落的空虚。可事实证明,干好自己的事情,比被谁青睐都更有价值!自己不哭没泪,走好自己的路,才能走出未来!第三,感谢那些离开你的女生,男人可以不勇敢,可以不斯文,但不能没有胸怀,有多大的心就有多大的未来!何况调查发现,一个男人要被4到5个女人伤害才会变成熟,所以可以说是离开你的那些女人造就了你的优秀,何况人家是在用一个女人最美好的时光来教育你,这个投资应该说相当大了,所以你应该感激!这就是为什么俞敏洪,马云,史玉柱,李阳,这些老男人能有今天,你可以去看看,我们当初有谁在学校特别被人欢迎?没有!我们倒是都自卑过,因为长相,因为穷!所以,不要认为你一无所有,当你一无所有的时候,是上帝帮你倒空了垃圾,让你装进去对你最有用的东西,此时,你离那个人生腾飞点已经很近了!”。----俞敏洪

    
[2] 俞敏洪途大学生活 "演讲&quot
    来源: 互联网  发布时间: 2014-02-18
俞敏洪谈大学生活 "演讲"

各位同学、各位领导:

大家上午好!(掌声)

非常高兴许校长给我这么崇高的荣誉,谈一谈我在北大的体会。(掌声)

可以说,北大是改变了我一生的地方,是提升了我自己的地方,使我从一个农村孩子最后走向了世界的地方。毫不夸张地说,没有北大,肯定就没有我的今天。北大给我留下了一连串美好的回忆,大概也留下了一连串的痛苦。正是在美好和痛苦中间,在挫折、挣扎和进步中间,最后找到了自我,开始为自己、为家庭、为社会能做一点事情。

  学生生活是非常美好的,有很多美好的回忆。我还记得我们班有一个男生,每天都在女生的宿舍楼下拉小提琴,(笑声)希望能够引起女生的注意,结果后来被女生扔了水瓶子。我还记得我自己为了吸引女生的注意,每到寒假和暑假都帮着女生扛包。(笑声、掌声)后来我发现那个女生有男朋友,(笑声)我就问她为什么还要让我扛包,她说为了让男朋友休息一下(笑声、掌声)。我也记得刚进北大的时候我不会讲普通话,全班同学第一次开班会的时候互相介绍,我站起来自我介绍了一番,结果我们的班长站起来跟我说:“俞敏洪你能不能不讲日语?”(笑声)我后来用了整整一年时间,拿着收音机在北大的树林中模仿广播台的播音,但是到今天普通话还依然讲得不好。

  人的进步可能是一辈子的事情。在北大是我们生活的一个开始,而不是结束。有很多事情特别让人感动。比如说,我们很有幸见过 朱光潜教授。在他最后的日子里,是我们班的同学每天轮流推着轮椅在北大里陪他一起散步。(掌声)每当我推着轮椅的时候,我心中就充满了对朱光潜教授的崇拜,一种神圣感油然而生。所以,我在大学看书最多的领域是美学。因为他写了一本《西方美学史》,是我进大学以后读的第二本书。

  为什么是第二本呢?因为第一本是这样来的,我进北大以后走进宿舍,我有个同学已经在宿舍。那个同学躺在床上看一本书,叫做《第三帝国的兴亡》。所以我就问了他一句话,我说:“在大学还要读这种书吗?”他把书从眼睛上拿开,看了我一眼,没理我,继续读他的书。这一眼一直留在我心中。我知道进了北大不仅仅是来学专业的,要读大量大量的书。你才能够有资格把自己叫做北大的学生。(掌声)所以我在北大读的第一本书就是《第三帝国的兴亡》,而且读了三遍。后来我就去找这个同学,我说:“咱们聊聊《第三帝国的兴亡》”,他说:“我已经忘了。”(笑声)

  我也记得我的导师李赋宁教授,原来是北大英语系的主任,他给我们上《新概念英语》第四册的时候,每次都把板书写得非常的完整,非常的美丽。永远都是从黑板的左上角写起,等到下课铃响起的时候,刚好写到右下角结束。(掌声)我还记得我的英国文学史的老师罗经国教授,我在北大最后一年由于心情不好,导致考试不及格。我找到罗教授说:“这门课如果我不及格就毕不了业。”,罗教授说:“我可以给你一个及格的分数,但是请你记住了,未来你一定要做出值得我给你分数的事业。”(掌声)所以,北大老师的宽容、学识、奔放、自由,让我们真正能够成为北大的学生,真正能够得到北大的精神。当我听说许智宏校长对学生唱《隐形的翅膀》的时候,我打开视频,感动得热泪盈眶。因为我觉得北大的校长就应该是这样的。(掌声)

  我记得自己在北大的时候有很多的苦闷。一是普通话不好,第二英语水平一塌糊涂。尽管我高考经过三年的努力考到了北大——因为我落榜了两次,最后一次很意外地考进了北大。我从来没有想过北大是我能够上学的地方,她是我心中一块圣地,觉得永远够不着。但是那一年,第三年考试时我的高考分数超过了北大录取分数线七分,我终于下定决心咬牙切齿填了“北京大学”四个字。我知道一定会有很多人比我分数高,我认为自己是不会被录取的。没想到北大的招生老师非常富有眼光,料到了三十年后我的今天。(掌声)但是实际上我的英语水平很差,在农村既不会听也不会说,只会背语法和单词。我们班分班的时候,五十个同学分成三个班,因为我的英语考试分数不错,就被分到了A班,但是一个月以后,我就被调到了C班。C班叫做“语音语调及听力障碍班”。(笑声)

  我也记得自己进北大以前连《红楼梦》都没有读过,所以看到同学们一本一本书在读,我拼命地追赶。结果我在大学差不多读了八百多本书,用了五年时间(掌声)。但是依然没有赶超上我那些同学。我记得我的班长王强是一个书癖,现在他也在新东方,是新东方教育研究院的院长。他每次买书我就跟着他去,当时北大给我们每个月发二十多块钱生活费,王强有个癖好就是把生活费一分为二,一半用来买书,一半用来买饭菜票。买书的钱绝不动用来买饭票。如果他没有饭菜票了就到处借,借不到就到处偷。(笑声)后来我发现他这个习惯很好,我也把我的生活费一份为二,一半用来买书,一半用来买饭菜票,饭票吃完了我就偷他的。(笑声掌声)

  毫不夸张地说,我们班的同学当时在北大,真是属于读书最多的班之一。而且我们班当时非常地活跃,光诗人就出了好几个。后来挺有名的一个诗人叫西川,真名叫刘军,就是我们班的。(掌声)我还记得我们班开风气之先,当时是北大的优秀集体,但是有一个晚上大家玩得高兴了,结果跳起了贴面舞,第二个礼拜被教育部通报批评了。那个时候跳舞是必须跳得很正规的,男女生稍微靠近一点就认为违反风纪。所以你们现在比我们当初要更加幸福一点。不光可以跳舞,而且可以手拉手地在校园里面走,我们如果当时男女生手拉手在校园里面走,一定会被扔到未名湖里,所以一般都是晚上十二点以后再在校园里面走。(笑声掌声)

  我也记得我们班五十个同学,刚好是二十五个男生二十五个女生,我听到这个比例以后当时就非常的兴奋(笑声),我觉得大家就应该是一个配一个。没想到女生们都看上了那些外表英俊潇洒、风流倜傥的男生。像我这样外表不怎么样,内心充满丰富感情、未来有巨大发展潜力的,女生一般都看不上。(笑声掌声)

  我记得我奋斗了整整两年希望能在成绩上赶上我的同学,但是就像刚才吕植老师说的,你尽管在中学高考可能考得很好,是第一名,但是北大精英人才太多了,你的前后左右可能都是智商极高的同学,也是各个省的状元或者说第二名。所以,在北大追赶同学是一个非常艰苦的过程,尽管我每天几乎都要比别的同学多学一两个小时,但是到了大学二年级结束的时候我的成绩依然排在班内最后几名。非常勤奋又非常郁闷,也没有女生来爱我安慰我。(笑声)这导致的结果是,我在大学三年级的时候得了一场重病,这个病叫做传染性侵润肺结核。当时我就晕了,因为当时我正在读《红楼梦》,正好读到林黛玉因为肺结核吐血而亡的那一章,(笑声)我还以为我的生命从此结束,后来北大医院的医生告诉我现在这种病能够治好,但是需要在医院里住一年。我在医院里住了一年,苦闷了一年,读了很多书,也写了六百多首诗歌,可惜一首诗歌都没有出版过。从此以后我就跟写诗结上了缘,但是我这个人有丰富的情感,但是没有优美的文笔,所以终于没有成为诗人。后来我感到非常的庆幸,因为我发现真正成为诗人的人后来都出事了。我们跟当时还不太出名的诗人海子在一起写过诗。后来他写过一首优美的诗歌,叫做《面朝大海,春暖花开》,我们每一个同学大概都能背。后来当我听说他卧轨自杀的时候,嚎啕大哭了整整一天。从此以后,我放下笔,再也不写诗了。(掌声)

 记得我在北大的时候,到大学四年级毕业时,我的成绩依然排在全班最后几名。但是,当时我已经有了一个良好的心态。我知道我在聪明上比不过我的同学,但是我有一种能力,就是持续不断的努力。所以在我们班的毕业典礼上我说了这么一段话,到现在我的同学还能记得,我说:“大家都获得了优异的成绩,我是我们班的落后同学。但是我想让同学们放心,我决不放弃。你们五年干成的事情我干十年,你们十年干成的我干二十年,你们二十年干成的我干四十年”。(掌声)我对他们说:“如果实在不行,我会保持心情愉快、身体健康,到八十岁以后把你们送走了我再走。”(笑声掌声)

  有一个故事说,能够到达金字塔顶端的只有两种动物,一是雄鹰,靠自己的天赋和翅膀飞了上去。我们这儿有很多雄鹰式的人物,很多同学学习不需要太努力就能达到高峰。很多同学后来可能很轻松地就能在北大毕业以后进入哈佛、耶鲁、牛津、剑桥这样的名牌大学继续深造。有很多同学身上充满了天赋,不需要学习就有这样的才能,比如说我刚才提到的我的班长王强,他的模仿能力就是超群的,到任何一个地方,听任何一句话,听一遍模仿出来的绝对不会两样。所以他在北大广播站当播音员当了整整四年。我每天听着他的声音,心头咬牙切齿充满仇恨。(笑声)所以,有天赋的人就像雄鹰。但是,大家也都知道,有另外一种动物,也到了金字塔的顶端。那就是蜗牛。蜗牛肯定只能是爬上去。从低下爬到上面可能要一个月、两个月,甚至一年、两年。在金字塔顶端,人们确实找到了蜗牛的痕迹。我相信蜗牛绝对不会一帆风顺地爬上去,一定会掉下来、再爬、掉下来、再爬。但是,同学们所要知道的是,蜗牛只要爬到金字塔顶端,它眼中所看到的世界,它收获的成就,跟雄鹰是一模一样的。(掌声)所以,也许我们在座的同学有的是雄鹰,有的是蜗牛。我在北大的时候,包括到今天为止,我一直认为我是一只蜗牛。但是我一直在爬,也许还没有爬到金字塔的顶端。但是只要你在爬,就足以给自己留下令生命感动的日子。(掌声)

  我常常跟同学们说,如果我们的生命不为自己留下一些让自己热泪盈眶的日子,你的生命就是白过的。我们很多同学凭着优异的成绩进入了北大,但是北大绝不是你们学习的终点,而是你们生命的起点。在一岁到十八岁的岁月中间,你听老师的话、听父母的话,现在你真正开始了自己的独立生活。我们必须为自己创造一些让自己感动的日子,你才能够感动别人。我们这儿有富裕家庭来的,也有贫困家庭来的,我们生命的起点由不得你选择出生在富裕家庭还是贫困家庭,如果你生在贫困家庭,你不能说老爸给我收回去,我不想在这里待着。但是我们生命的终点是由我们自己选择的。我们所有在座的同学过去都走得很好,已经在十八岁的年龄走到了很多中国孩子的前面去,因为北大是中国的骄傲,也可以说是世界的骄傲。但是,到北大并不意味着你从此大功告成,并不意味着你未来的路也能走好,后面的五十年、六十年,甚至一百年你该怎么走,成为了每一个同学都要思考的问题。就本人而言,我觉得只要有两样东西在心中,我们就能成就自己的人生。

  第一样叫做理想。我从小就有一种感觉,希望穿越地平线走向远方,我把它叫做“穿越地平线的渴望”。也正是因为这种强烈的渴望,使我有勇气不断地高考。当然,我生命中也有榜样。比如我有一个邻居,非常的有名,是我终生的榜样,他的名字叫徐霞客。当然,是五百年前的邻居。但是他确实是我的邻居,江苏江阴的,我也是江苏江阴的。因为崇拜徐霞客,直接导致我在高考的时候地理成绩考了九十七分。(掌声)也是徐霞客给我带来了穿越地平线的这种感觉,所以我也下定决心,如果徐霞客走遍了中国,我就要走遍世界。而我现在正在实现自己这一梦想。所以,只要你心中有理想,有志向,同学们,你终将走向成功。你所要做到的就是在这个过程要有艰苦奋斗、忍受挫折和失败的能力,要不断地把自己的心胸扩大,才能够把事情做得更好。

  第二样东西叫良心。什么叫良心呢?就是要做好事,要做对得起自己对得起别人的事情,要有和别人分享的姿态,要有愿意为别人服务的精神。有良心的人会从你具体的生活中间做的事情体现出来,而且你所做的事情一定对你未来的生命产生影响。我来讲两个小故事,讲完我就结束我的讲话,已经占用了很长的时间。

  第一个小故事。有一个企业家和我讲起他大学时候的一个故事,他们班有一个同学,家庭比较富有,每个礼拜都会带六个苹果到学校来。宿舍里的同学以为是一人一个,结果他是自己一天吃一个。尽管苹果是他的,不给你也不能抢,但是从此同学留下一个印象,就是这个孩子太自私。后来这个企业家做成功了事情,而那个吃苹果的同学还没有取得成功,就希望加入到这个企业家的队伍里来。但后来大家一商量,说不能让他加盟,原因很简单,因为在大学的时候他从来没有体现过分享精神。所以,对同学们来说在大学时代的第一个要点,你得跟同学们分享你所拥有的东西,感情、思想、财富,哪怕是一个苹果也可以分成六瓣大家一起吃。(掌声)因为你要知道,这样做你将来能得到更多,你的付出永远不会是白白付出的。

  我再来讲一下我自己的故事。在北大当学生的时候,我一直比较具备为同学服务的精神。我这个人成绩一直不怎么样,但我从小就热爱劳动,我希望通过勤奋的劳动来引起老师和同学的的注意,所以我从小学一年级就一直打扫教室卫生。到了北大以后我养成了一个良好的习惯,每天为宿舍打扫卫生,这一打扫就打扫了四年。所以我们宿舍从来没排过卫生值日表。另外,我每天都拎着宿舍的水壶去给同学打水,把它当作一种体育锻炼。大家看我打水习惯了,最后还产生这样一种情况,有的时候我忘了打水,同学就说“俞敏洪怎么还不去打水”。(笑声)。但是我并不觉得打水是一件多么吃亏的事情。因为大家都是一起同学,互相帮助是理所当然的。同学们一定认为我这件事情白做了。又过了十年,到了九五年年底的时候新东方做到了一定规模,我希望找合作者,结果就跑到了美国和加拿大去寻找我的那些同学,他们在大学的时候都是我生命的榜样,包括刚才讲到的王强老师等。我为了诱惑他们回来还带了一大把美元,每天在美国非常大方地花钱,想让他们知道在中国也能赚钱。我想大概这样就能让他们回来。后来他们回来了,但是给了我一个十分意外的理由。他们说:“俞敏洪,我们回去是冲着你过去为我们打了四年水。”(掌声)他们说:“我们知道,你有这样的一种精神,所以你有饭吃肯定不会给我们粥喝,所以让我们一起回中国,共同干新东方吧。”才有了新东方的今天。(掌声)

  人的一生是奋斗的一生,但是有的人一生过得很伟大,有的人一生过得很琐碎。如果我们有一个伟大的理想,有一颗善良的心,我们一定能把很多琐碎的日子堆砌起来,变成一个伟大的生命。但是如果你每天庸庸碌碌,没有理想,从此停止进步,那未来你一辈子的日子堆积起来将永远是一堆琐碎。所以,我希望所有的同学能把自己每天平凡的日子堆砌成伟大的人生。(掌声)

  最后,我代表全体老校友向在座的三千多位新生表一个心意,我代表全体老校友和新东方把两百万人民币捐给许校长,为在座同学们的学习、活动和成长提供一点帮助。


    
[3] Java资料的拆分与合并(二)
    来源: 互联网  发布时间: 2014-02-18
Java文件的拆分与合并(二)
package cn.com;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.RandomAccessFile;
//文件的拆分和组合
//步骤:
//1 依据源文件大小和每块的大小计算出块数
//2 将每一块写到一个对应的文件
public class FileSeparatorAndUnite {
	long rawFileSize;
	long blocksNumber;
	String rawFileName=null;
	String [] allPaths=null;
	public static void main(String[] args) {
         FileSeparatorAndUnite test=new FileSeparatorAndUnite();
         //拆分文件
         String [] allPaths=test.separatorFile("F:\\2.jpg", 1024*10);
         //组合文件
         test.uniteFile(allPaths, "F:\\33.jpg");
	}
	
	/**
	 * @param rawFilePath   待拆分文件的路径
	 * @param perBlockSize  拆分后每份的大小
	 * @return              各部分路径的数组集合
	 */
	private String[] separatorFile(String rawFilePath,long perBlockSize){
		File rawFile=new File(rawFilePath);
		rawFileName=rawFile.getName();
		rawFileSize=rawFile.length();
		blocksNumber=getBlocksNumber(rawFileSize,perBlockSize);
		allPaths=new String[(int)blocksNumber];
		if (blocksNumber==1) {
			perBlockSize=rawFileSize;
		}
		long perPartSize=0;
		long perPartBeginPosition=0;
		String perPartPath=null;
		for (int i = 1; i <=blocksNumber; i++) {
			if (i<blocksNumber) {
				//每一块的大小就为perBlockSize
				perPartSize=perBlockSize;
			} else {
				//最后一块的大小为总大小-该块的起始位置
                perPartSize=rawFileSize-perPartBeginPosition;
			}
			//得到每一块的path
			if (blocksNumber==1) {
				perPartPath=rawFilePath+".bat";
			} else {
				perPartPath=getPerPartFilePath(rawFilePath, i);
			}
			//操作每一块
			//第一次调用时perPartBeginPosition当然为0
			writePerPartToFile(rawFilePath, perPartPath, perBlockSize, perPartBeginPosition); 
			//计算每一块的在原文件中的起始位置.
			perPartBeginPosition=perPartBeginPosition+perPartSize;
			//保存每一块的路径
			allPaths[i-1]=perPartPath;
		}
		return allPaths;
		
	}
	
	/**
	 * @param rawFilePath       原文件路径
	 * @param perPartFilePath   每部分对应的路径
	 * @param blockSize         每部分的块大小
	 * @param beginPosition     每部分在原文件中的开始位置 
	 * @return
	 * 在这里  len=len-(int)(writedBytes-blockSize)有些不好理解
	 * 假设blockSize=2100,每次写入1024,那么两次后还剩余
	 * 2100-1024*2=52
	 * 如果再写入1024,那么就会报错,超出了最大范围.
	 * 所以还能写入的=blockSize-已经写入的大小(writedBytes)
	 * 因为在if语句前面已经有了赋值语句writedBytes=writedBytes+len;
	 * 所以需要:len=len-(int)(writedBytes-blockSize)
	 * 其实代入:len=len-(int)(writedBytes+len-blockSize)
	 * 可以得知:len=blockSize-writedBytes
	 */
	public boolean writePerPartToFile(String rawFilePath,String perPartFilePath,long blockSize,long beginPosition){
		RandomAccessFile raf=null;
		FileOutputStream fos=null;
		byte [] buffer=new byte[8*1024];
		int len=0;
		long writedBytes=0;
		try {
			raf=new RandomAccessFile(rawFilePath, "r");
			raf.seek(beginPosition);
			fos=new FileOutputStream(perPartFilePath);
			while ((len=raf.read(buffer))!=-1) {
				if (writedBytes<blockSize) {
					writedBytes=writedBytes+len;
					if (writedBytes<=blockSize) {
						fos.write(buffer, 0, len);
					} 
					else {
                        len=len-(int)(writedBytes-blockSize);
                        fos.write(buffer, 0, len);
					}
				} 
				
			}
		} catch (Exception e) {
			try {
				if (fos!=null) {
					fos.close();
				}
				if (raf!=null) {
					raf.close();
				}
			} catch (Exception ex) {
			}
			return false;
		}
		return true;
	}
	
	/**
	 * @param rawFileSize   原文件大小
	 * @param perBlockSize  每块的大小
	 * @return              拆分后块数
	 */
	public long getBlocksNumber(long rawFileSize,long perBlockSize){
		if (rawFileSize<=perBlockSize) {
			return 1;
		} else {
            if (rawFileSize%perBlockSize==0) {
				return ((rawFileSize/perBlockSize)+1);
			} else {
                return rawFileSize/perBlockSize;
			}
		}
	}
	
	/**
	 * @param rawFilePath   原文件路径
	 * @param blockNumer    当前块号码
	 * @return              当前块对应的路径
	 */
	public String getPerPartFilePath(String rawFilePath,int blockNumer){
		String perPartFilePath=rawFilePath+".part"+blockNumer;
		return perPartFilePath;
	}
	
	/**
	 * @param partsPaths      各部分路径
	 * @param unitedFilePath  合并后文件路径
	 */
	public void uniteFile(String [] partsPaths,String unitedFilePath){
		try {
			File perPartFile=null;
			File unitedFile=new File(unitedFilePath);
			FileOutputStream fos=new FileOutputStream(unitedFile);
			FileInputStream fis=null;
			for (int i = 0; i < partsPaths.length; i++) {
				perPartFile=new File(partsPaths[i]);
				fis=new FileInputStream(perPartFile);
				byte [] buffer=new byte[1024*8];
				int len=0;
				while ((len=fis.read(buffer))!=-1) {
					fos.write(buffer, 0, len);
				}
			}
			fis.close();
			fos.close();
		} catch (Exception e) {
		}
	}
}


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3