java 中RandomAccessFile的使用
来源:互联网 发布:京东怎么做淘宝客 编辑:程序博客网 时间:2024/05/18 00:37
利用RandomAccessFile实现文件的多线程下载,即多线程下载一个文件时,将文件分成几块,每块用不同的线程进行下载。下面是一个利用多线程在写文件时的例子,其中预先分配文件所需要的空间,然后在所分配的空间中进行分块,然后写入:
[java] view plaincopy
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
/**
* 测试利用多线程进行文件的写操作
*/
public class Test {
public static void main(String[] args) throws Exception {
// 预分配文件所占的磁盘空间,磁盘中会创建一个指定大小的文件
RandomAccessFile raf = new RandomAccessFile("D://abc.txt", "rw");
raf.setLength(1024*1024); // 预分配 1M 的文件空间
raf.close();
// 所要写入的文件内容
String s1 = "第一个字符串";
String s2 = "第二个字符串";
String s3 = "第三个字符串";
String s4 = "第四个字符串";
String s5 = "第五个字符串";
// 利用多线程同时写入一个文件
new FileWriteThread(1024*1,s1.getBytes()).start(); // 从文件的1024字节之后开始写入数据
new FileWriteThread(1024*2,s2.getBytes()).start(); // 从文件的2048字节之后开始写入数据
new FileWriteThread(1024*3,s3.getBytes()).start(); // 从文件的3072字节之后开始写入数据
new FileWriteThread(1024*4,s4.getBytes()).start(); // 从文件的4096字节之后开始写入数据
new FileWriteThread(1024*5,s5.getBytes()).start(); // 从文件的5120字节之后开始写入数据
}
// 利用线程在文件的指定位置写入指定数据
static class FileWriteThread extends Thread{
private int skip;
private byte[] content;
public FileWriteThread(int skip,byte[] content){
this.skip = skip;
this.content = content;
}
public void run(){
RandomAccessFile raf = null;
try {
raf = new RandomAccessFile("D://abc.txt", "rw");
raf.seek(skip);
raf.write(content);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
raf.close();
} catch (Exception e) {
}
}
}
}
}
[java] view plaincopy
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
/**
* 测试利用多线程进行文件的写操作
*/
public class Test {
public static void main(String[] args) throws Exception {
// 预分配文件所占的磁盘空间,磁盘中会创建一个指定大小的文件
RandomAccessFile raf = new RandomAccessFile("D://abc.txt", "rw");
raf.setLength(1024*1024); // 预分配 1M 的文件空间
raf.close();
// 所要写入的文件内容
String s1 = "第一个字符串";
String s2 = "第二个字符串";
String s3 = "第三个字符串";
String s4 = "第四个字符串";
String s5 = "第五个字符串";
// 利用多线程同时写入一个文件
new FileWriteThread(1024*1,s1.getBytes()).start(); // 从文件的1024字节之后开始写入数据
new FileWriteThread(1024*2,s2.getBytes()).start(); // 从文件的2048字节之后开始写入数据
new FileWriteThread(1024*3,s3.getBytes()).start(); // 从文件的3072字节之后开始写入数据
new FileWriteThread(1024*4,s4.getBytes()).start(); // 从文件的4096字节之后开始写入数据
new FileWriteThread(1024*5,s5.getBytes()).start(); // 从文件的5120字节之后开始写入数据
}
// 利用线程在文件的指定位置写入指定数据
static class FileWriteThread extends Thread{
private int skip;
private byte[] content;
public FileWriteThread(int skip,byte[] content){
this.skip = skip;
this.content = content;
}
public void run(){
RandomAccessFile raf = null;
try {
raf = new RandomAccessFile("D://abc.txt", "rw");
raf.seek(skip);
raf.write(content);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
raf.close();
} catch (Exception e) {
}
}
}
}
}
0
上一篇:java用RandomAccessFile实现多线程下载
下一篇:eclipse 快捷键
相关热门文章
- JDK1.6官方下载_JDK6官方下载_...
- MyEclipse6.5下载及注册码...
- Eclipse+MyEclipse的配置
- Eclipse 插件安装、升级和卸载...
- 最新版SWT Designer 6.0 安装,...
- 那一台服务器也没5T的存储空间...
- 公司有5T的数据用于下载,数据...
- CACTI监控ESXI中的虚拟机,监...
- 如何挂载一块以前做过LVM的硬...
- 做主主同步,只同步个别的几张...
给主人留下些什么吧!~~
评论热议
- java 中RandomAccessFile的使用
- Java RandomAccessFile的使用
- Java RandomAccessFile的使用
- Java RandomAccessFile的使用
- Java RandomAccessFile的使用
- Java RandomAccessFile的使用
- Java RandomAccessFile的使用
- Java RandomAccessFile的使用
- java RandomAccessFile的使用
- Java中RandomAccessFile的用法
- Java IO的RandomAccessFile的使用
- Java IO的RandomAccessFile的使用
- Java IO的RandomAccessFile的使用
- Java IO的RandomAccessFile的使用
- Java IO的RandomAccessFile的使用(1)
- Java IO的RandomAccessFile的使用
- Java IO的RandomAccessFile的使用
- Java IO的RandomAccessFile的使用
- Unity3d 截屏之后转换成Texture2d
- 验证码识别过程(二)
- 验证码识别部分代码(三)
- java用RandomAccessFile实现多线程下载
- How to install an SSH Server in Windows Server 2008
- java 中RandomAccessFile的使用
- Linux添加可执行文件/头文件/链接库的环境变量
- eclipse 快捷键
- java 中读取文件最后一行信息
- c 语言的一些知识
- html中meta标签的使用
- ubuntu下sublime Text 2编辑器安装教程
- ubuntu 下安装搜狗输入法
- Git常用命令大全
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
总裁宠替身甜妻
穿成白月光替身
天龙风流替身段誉
替身是什么意思
不做替身 沫有
虐虐更健康
楞严大义今释 南怀瑾
严怎么读音
严厨酸菜鱼
陆少是个妻管严全文免费阅读
原来爱你那么痛严以白
捷信现在2018年为何审核这么严
洲际酒店招聘
东方人才网
酒店招聘网
附近酒店招聘信息
酒店招聘信息
饭店招聘
附近酒店招聘
酒店招聘启事
广州w酒店招聘
易猫网手游交易平台
猫交易平台
挂猫交易平台
宠物猫交易平台
右app
右右
zuiyou
难写的字大全
些字
敬佩人清洁工
时工
库工
diany
电景
2013新款suv报价
770404期
绳虐俱乐部
极限虐菊
狂虐
受虐