【java编程】IO特殊类之RandomAccessFile实现多线程文件下载
2015-03-18 12:02
841 查看
RandomAccessFile特点:
1.它不是IO流的子类,而是直接继承至Object类。但内部实现的是DataInputStream和OutputStream来实现读写2.从构造函数可以看出,此类只能操作文本文件
3.当文件存在时,再创建文件,会续写文件,而不是覆盖
4.当文件不存在,要创建文件时,只有文件权限为rw时,才能够创建文件
5.可以直接对基本数据类型进行读写
下面是一个文件多线程例子:
import java.io.*; class RandomAccessFileDemo { public static void main(String[] args) throws IOException { //关联要存储的文件 RandomAccessFile ranf=new RandomAccessFile("ran.txt","rw"); //预留空间为1M ranf.setLength(1024*1024); //创建要写入的字符串 String s1="第一个字符串"; String s2="第二个字符串"; String s3="第三个字符串"; String s4="第四个字符串"; String s5="第五个字符串"; // 利用多线程同时写入一个文件 new WriteFileThread(1024*0,s1.getBytes()).start();//从文件的0字节之后开始写入数据 new WriteFileThread(1024*1,s2.getBytes()).start(); // 从文件的1024字节之后开始写入数据 new WriteFileThread(1024*2,s3.getBytes()).start(); // 从文件的2048字节之后开始写入数据 new WriteFileThread(1024*3,s4.getBytes()).start(); // 从文件的3072字节之后开始写入数据 new WriteFileThread(1024*4,s5.getBytes()).start(); // 从文件的4096字节之后开始写入数据 } } //创建类实现Thread,并对文件进行写入 class WriteFileThread extends Thread { private int skip; private byte[] content; WriteFileThread(int skip,byte[] content) { this.skip=skip; this.content=content; } public void run() { RandomAccessFile ranf=null; try { ranf=new RandomAccessFile("ran.txt","rw"); ranf.seek(skip); ranf.write(content); } catch (IOException e) { throw new RuntimeException("文件不存在!"); } finally { if(ranf!=null) try { ranf.close(); } catch (IOException e) { throw new RuntimeException("资源关闭失败!"); } } } }
相关文章推荐
- java网络编程:RandomAccessFile, URLConnection和多线程机制实现了Http下载
- JavaIo——运用RandomAccessFile实现文件的多线程下载
- Java学习笔记---实现文件随机读写-RandomAccessFile
- JAVA之旅(三十)——打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码
- Java 实现文件随机读写-RandomAccessFile
- RandomAccessFile创建文件java.io.FileNotFoundException
- 使用RandomAccessFile和多线程来实现开启三个线程去复制一个文件
- Java IO RandomAccessFile随机读写文件用法
- IO_文件分割与合并_RandomAccessFile_初始化参数_SequenceInputStreamJAVA164-167
- JavaIO之RandomAccessFile随机访问文件
- java网络编程和io,多线程结合完成文件上传和下载案例
- JAVA之旅(三十)——打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码
- Java IO 之 RandomAccessFile 操作文件内容
- JavaIO之RandomAccessFile随机访问文件
- 基于RandomAccessFile实现断点文件下载功能
- 学习笔记之JavaIO中的文件处理——File和RandomAccessFile
- Java IO深入理解读写文件(FileInputStream、FileOutputStream、FileReader、FileWriter、RandomAccessFile)
- RandomAccessFile实现多线程文件复制
- Java RandomAccessFile 指定位置实现文件读取与写入
- Java IO操作——简单了解RandomAccessFile随机读写文件操作类的使用