仿佛兮若轻云之蔽月,飘飘兮若流风之回雪。一种名状,是一种墨迹,一种发自潜意识的。
请问:大家懂我说的这句话的意思吗?程序员的生活要种诗意,偶尔写写小散文,为什么程序员不能成为诗人呢?
只需要一种名状和意境,平凡的人也可以超神,难道数字和键码是我们全部吗?一个小小的意境,一个小小灵感来之不易,为何不赶快铭刻在心呢?不,刻于心。就像初恋一样,苦涩的味道,一种清甜,远了,但香味依然残留在十指之间。她是如此迷人,深呼一口气品尝她的味道,只有甜味吗?不,一种难咽但难割舍的味道,什么味道都有,怪味豆。不要相信你就是哪个天天吃着天香蚕豆的绝世天人,非也,大神不是你。大神神吗?神,但也不神,有人说我当你是空气,你一定很气,特别是你的小初恋情人说出的,我们需要的是一种心态。为何我就不是那空气。如果我是空气就是大神了。知道什么是大神。不做解释,老年纪了就问问朋友。大神是种名状,已融掉了。但是确实很牛B,但又是那么平凡你天天感受的到他的存在的。空气知道了吗?不知道你就非人类。但是这个世界我是没见过的,不知道那么大神见过。每每呼吸一口空气,我就听的到自己的心跳在还在跳,大神就是能带你给你心跳的人。你吸入他,他融入了你那么你牛了,功底不错。如果你没能融入他,那么他也不伤害你,只是你可能哮喘了,瓶颈了。”这么“办。千万在别在来个小高血压,那么你的小命不保,人生到头了。呼出了他,是二氧化碳了,废气吗?no(弄:no的意思),还可以光合作用。他是如此的好,人人爱,想爱都不行,除非你想少活几年。死到不会,拿空气来第一人称。简述完毕:大神概念。是丰功伟业吗?弄:平凡的无处不在,但你天天感受的到,缺他不可,就这么缺他不可,是多少人的梦,不是:是在睡觉时的那种不名状的笑。
1,2,3,4....哒地,哒等哒,哒地哒等哒,妹妹我一定要得到你,你就是我今生的唯一,只要我还能继续呼吸,我就,我就,不会轻易的放弃你。
本来是写给一个女孩的,但是又和工作联系上了,没发成,就发这里,本想用优美的文字来表达,听着音乐双手就像弹钢琴一样,十指休闲的在那块富有弹性的方格区,跳起了优美的华尔兹。由于华尔兹很优美,没加入幽默的街舞味道,请原谅,我不能破坏了这优美的舞姿。
专业的事用大神的心态对待,用高度兴趣的态度完成专业的事情。(职业的游戏竞技手,专业吧,还是权威的,在专业上吗?在兴趣上,游戏是娱乐,但是真要你成为职业手,你未必很快乐,也许就是痛苦。游戏好玩,但不要被游戏玩了。)
那天失去了兴趣怎么,苦脑,郁闷,做为男人有什么苦脑的,pass。郁闷,男人,女人都有的。弄:什么男人和女人都的,郁(欲:想要的意思),(闷:man:男人的意思)。大家跟我一起连起来说一遍:想要男人。作为男人的我们:怎么能郁闷,郁闷,郁闷,郁闷那不是女人干的事吗,我们什么时候说郁闷了。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
java 多线程下载工具的小小实现。
源码在里头,里头哪里?你懂的,javaeye老规矩。呵呵。。。
扯谈太多,懒得对源码的解释,请原谅!!!共享下。。。。
package org.crazyit.flashget.thread;
import java.io.File;
import java.io.RandomAccessFile;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import org.crazyit.flashget.ContextHolder;
import org.crazyit.flashget.DownloadContext;
import org.crazyit.flashget.object.Part;
import org.crazyit.flashget.object.Resource;
import org.crazyit.flashget.state.Finished;
public class DownloadHandler {
public static Map<String, Timer> timers = new HashMap<String, Timer>();
public void stopTimer(Resource r) {
Timer t = timers.get(r.getId());
if (t != null) {
t.cancel();
}
}
public void doDownload(Resource r) {
try {
//设置下载日期
if (r.getDownloadDate() == null) r.setDownloadDate(new Date());
r.setState(DownloadContext.CONNECTION);
//计算出每一块的大小
int partLength = r.getSize() / r.getThreadSize() + 1;
//时间计算任务
CountTimeTask timeTask = new CountTimeTask(r);
Timer timer = new Timer();
timer.schedule(timeTask, 0, 1000);
//将Timer对象放到Map中, key为该资源的id
timers.put(r.getId(), timer);
for (int i = 0; i < r.getThreadSize(); i++) {
int length = partLength;
//如果是最后一块, 则使用总数来减去前面块的总和
if (i == (r.getThreadSize() - 1)) {
length = r.getSize() - i * partLength;
}
//创建各个Part对象
Part p = new Part((i * partLength), length, 0);
r.getParts().add(p);
RandomAccessFile rav = new RandomAccessFile(r.getFilePath() +
File.separator + p.getPartName(), "rw");
DownloadThread t = new DownloadThread(r, rav, p);
//设置线程优先级
t.setPriority(6);
t.start();
}
} catch (Exception e) {
r.setState(DownloadContext.FAILED);
e.printStackTrace();
}
}
public void resumeDownload(Resource r) {
if (r.getState() instanceof Finished) return;
try {
CountTimeTask timeTask = new CountTimeTask(r);
Timer timer = new Timer();
timer.schedule(timeTask, 0, 1000);
//将Timer对象放到Map中, key为该资源的id
timers.put(r.getId(), timer);
for (int i = 0; i < r.getParts().size(); i++) {
Part p = r.getParts().get(i);
RandomAccessFile rav = new RandomAccessFile(r.getFilePath() +
File.separator + p.getPartName(), "rw");
DownloadThread t = new DownloadThread(r, rav, p);
t.start();
}
} catch (Exception e) {
r.setState(DownloadContext.FAILED);
e.printStackTrace();
}
}
//计算时间任务
class CountTimeTask extends TimerTask {
private Resource r;
public CountTimeTask(Resource r) {
this.r = r;
}
public void run() {
r.setCostTime(r.getCostTime() + 1);
}
}
}
============================================================================
package org.crazyit.flashget.thread;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.RandomAccessFile;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import org.crazyit.flashget.ContextHolder;
import org.crazyit.flashget.DownloadContext;
import org.crazyit.flashget.exception.URLException;
import org.crazyit.flashget.object.Part;
import org.crazyit.flashget.object.Resource;
import org.crazyit.flashget.state.Pause;
import org.crazyit.flashget.util.FileUtil;
public class DownloadThread extends Thread {
private URL url;
private RandomAccessFile raf;
//下载的资源对象
private Resource resource;
//本线程需要下载的块
private Part part;
/**
* 下载线程构造器
*/
public DownloadThread(Resource resource, RandomAccessFile raf, Part part) {
this.url = createURL(resource.getUrl());
this.raf = raf;
this.part = part;
this.resource = resource;
}
private URL createURL(String urlPath) {
try {
return new URL(urlPath);
} catch (Exception e) {
throw new URLException("create url error");
}
}
public final static int MAX_BUFFER_SIZE = 1024;
public void run() {
try {
//计算开始点与结束点
int begin = part.getBegin() + part.getCurrentLength();
int end = part.getBegin() + part.getLength() - 1;
//如果是开始点大于结束点, 证明该块已经下载完成
if (begin >= end) {
this.raf.close();
return;
}
HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
urlConnection.setRequestProperty("Range", "bytes=" + begin + "-" + end);
//如果连接不上相应的地址, 抛出java.net.UnknownHostException
urlConnection.connect();
//如果找不到相应的资源, 将抛出java.io.FileNotFoundException
InputStream is = urlConnection.getInputStream();
byte[] buffer = new byte[MAX_BUFFER_SIZE];
int perRead = 0;
//设置状态为下载
this.resource.setState(DownloadContext.DOWNLOADING);
//在.part文件中设置当前所读取的指针
this.raf.seek(this.part.getCurrentLength());
while ((perRead = is.read(buffer)) != -1) {
//判断资源对象的状态是否被修改成暂停
if (this.resource.getState() instanceof Pause) {
closeStream(is, urlConnection, this.raf);
return;
}
//判断资源对象状态
raf.write(buffer, 0, perRead);
this.part.setCurrentLength(this.part.getCurrentLength() + perRead);
}
closeStream(is, urlConnection, this.raf);
//判断是否下载完成, 如果下载完成, 则进行合并文件
//注意这里需要得到整个文件的大小, 而不是某个.part文件的大小
if (isFinished(this.resource.getSize())) uniteParts();
} catch (Exception e) {
this.resource.setState(DownloadContext.FAILED);
e.printStackTrace();
}
}
private void closeStream(InputStream is, HttpURLConnection urlConnection,
RandomAccessFile raf) throws IOException {
is.close();
urlConnection.disconnect();
raf.close();
}
/**
* 判断是否下载完成, 遍历下载文件的各个.part文件
* @param fileLength
* @return
*/
private boolean isFinished(int fileLength) {
List<Part> parts = this.resource.getParts();
//计算已下载的总数
int downCount = 0;
for (Part part : parts) downCount += part.getCurrentLength();
return (downCount >= fileLength) ? true : false;
}
/**
* 合并part文件
*/
private void uniteParts() throws IOException {
List<Part> parts = this.resource.getParts();
//创建文件输出流, 输出到下载文件
OutputStream bos = new FileOutputStream(this.resource.getSaveFile(),
false);
for (Part part : parts) {
//得到.part文件
File partFile = new File(FileUtil.getPartFilePath(this.resource,
part));
//获得文件输入流
InputStream is = new FileInputStream(partFile);
byte[] buffer = new byte[1024];
int bytesRead;
int temp = 0;
while ((bytesRead = is.read(buffer)) != -1) {
temp += bytesRead;
//写到文件中
bos.write(buffer, 0, bytesRead);
}
is.close();
}
bos.close();
this.resource.setState(DownloadContext.FINISHED);
}
public static void main(String[] args) throws Exception {
int threadSize = 5;
Resource f = new Resource("http://www.apache.org/dist/struts/library/struts-2.1.8.1-lib.zip",
"C:/test-download", "struts.zip", threadSize);
ContextHolder.dh.doDownload(f);
}
}
Sorry!上次忘给源码了。 写道
希望对你们有些个帮。。。。
- 大小: 1.3 KB
- src.rar (24.3 KB)
- 描述: 源码,上次忘了,望原谅,Sorry!
- 下载次数: 81
分享到:
相关推荐
标题“雪人雪花飘飘雪人”提示我们这是一个与雪人和雪花动态效果相关的项目,可能是一个动画或者游戏。描述中提到“四个自己用flash做的雪花飘飘动画”,表明这是一组使用Adobe Flash软件创作的多媒体作品,可能是...
雪飘动画的强大之处还体现在它提供的一站式服务上。它不仅仅是一个简单的GIF制作工具,从图片编辑、动画创作到文件压缩,它全方位地满足了用户在不同场合下的需求。无论是社交媒体上的个人分享,还是工作中需要制作...
"飘风密码保存器"可能内置了安全措施,比如自动锁定功能,如果一段时间无操作,程序会自动锁定,增加了一层保护。同时,它可能还支持两步验证,为用户账户增加额外的安全保障。 此外,对于那些担心数据丢失的用户,...
在这个特定的场景中,我们关注的是如何使用HTML5来实现一种“背景云朵飘飘”的效果。这种效果通常用于增加网页的视觉吸引力,使用户感觉更加沉浸和舒适。 在HTML5中,我们通常会结合CSS3和JavaScript来实现这样的...
打开之后雪花飘飘,
舞蹈中那轻盈的身姿、柔美的动作,正如“皎皎兮似轻云之蔽月,飘飘兮若回风之流雪”,生动描绘了舞者在舞台上如云似风的飘逸。舞者们每一个细腻的动作,不论是悠扬的慢舞还是迅疾的旋转,都融入了力量与柔情的平衡,...
"枫叶飘飘风格for leadbbs3.14"是一款专为Leadbbs 3.14论坛系统设计的界面皮肤,旨在为用户带来独特的视觉体验,营造出秋天枫叶飘落的温馨氛围。这款皮肤主要由一系列的CSS样式表、图像文件以及可能的动画资源组成,...
在iOS开发中,"雪花飘飘"是一种常见的视觉效果,常用于模拟冬季场景或节日气氛。这个效果通常通过自定义视图或者利用Core Animation来实现。在这个案例中,描述提到根据《IOS疯狂讲义》一书中的代码实现了一个雪花...
4. 连词,表示修饰关系,如“风飘飘而吹衣”,“而”连接形容词和动词,修饰动作的状态。 此外,这个PPT还提到了一种特殊的句式——倒装句,例如“既窈窕以寻壑,亦崎岖而经丘”。这种句式通过将定语置于中心词之后...
这篇文档的标题“小雪飘啊飘作文.doc”和描述暗示了这是一篇与冬季小雪景致相关的学生作文,标签“范文”则表明这可能是一个教育材料,用于展示或教学如何描绘自然景象或者抒发情感。以下是根据这部分内容生成的相关...
雪花飘飘VB程序
他用“舟遥遥以轻飏,风飘飘而吹衣”这样的生动描绘,让我们仿佛看到诗人乘舟归途,心情愉悦,宛如风之子,随风飘扬,自由自在。 陶渊明的田园,虽然因长期的荒芜而显出几分萧条,但那份自然之美,却在他的笔下如...
植物大战僵尸融合版修改器V1.0 对应蓝飘飘fly开发的植物大战僵尸融合版! 植物大战僵尸融合版修改器V1.0 对应蓝飘飘fly开发的植物大战僵尸融合版! 植物大战僵尸融合版修改器V1.0 对应蓝飘飘fly开发的植物大战僵尸融合...
当冬日的寒冷悄悄袭来,大地换上了一袭洁白的衣裳,那是雪花儿飘飘洒洒地从天而降。它们轻盈而优雅,如同天使的羽毛,缓缓地,缓缓地,落在了屋顶、街道、树枝和湖面,编织成一个银装素裹的世界。此时此刻,校园里的...
【体育教案——“雪花飘飘”】:这是一个针对大班儿童设计的体育活动,旨在提升孩子们的身体素质,尤其是上肢力量和协调性。活动的主要目标包括两个方面: 1. **练习原地向上纵跳抛物**:这项练习有助于增强孩子的...
基于氏量的简笔画云彩动画,云朵飘飘flash,这种云彩比较简洁,播放占用资源少,在电视上的动画片中,见到的比较多的一种效果,Flash源代码可在Flash8中编辑修改,云彩由右向左飘动,经常做Flash动画 的朋友,这个...
提供雪花自由飘落,添加运动引导层带音乐的小孩和自己堆得雪人随着音乐翩翩起舞,主要语言是actionscript
诗的开头“秋风起兮木叶飞”,简洁而充满画面感的语言,将读者带入一个秋天的景致之中。秋风起,落叶飘,这是自然界中常见的情景,但在张翰的笔下,却成了触发乡愁的契机。落叶飞舞,似乎在诉说着时间的流逝和生命的...
网页中的雪飘效果是一种常见的视觉特效,特别是在节日或者冬季,它可以为网站增添浓厚的节日气氛。这个下载包包含了实现这一效果的JavaScript代码,以及相关的图片和示例,可以帮助开发者快速在自己的网页上实现飘雪...