RandomAccessFile raf=new RandomAccessFile(文件对象,读写模式);r只读,rw读和写
private File f;
//目的地
private String dir;
//所有分割后的文件存储路径
private List<String> list;
//每块大小
private int blockSize;
//块数
private int size;
public n(File f,String dir,int blockSize)
{
this.f=f;
this.dir=dir;
this.blockSize=blockSize;
this.list=new ArrayList<String>;
}
//初始化
private void init()
{
//总长度
long len=this.f.length();
//块数
this.size=(int)Math.ceil(len*1.0/blockSize);
//路径:
for(int i=0;i<size;i++)
{
this.list.add(this.dir+i+this.f.getName());
}
}
//分割:计算每一块的起始位置及大小
public void split()
{
}
public void t3(int i,int first,int real) throws IOException
{
RandomAccessFile raf=new RandomAccessFile(this.f,"r");
RandomAccessFile raf2=new RandomAccessFile(this.list.get(i),"rw");
raf.seek(first);//从第二个位置开始
byte[] flush=new byte[1024];
int len=-1;
while((len=raf.read(flush))!=-1)
{
if(real>1024)
{
raf2.write(flush,0,len);
real-=1024;
}else
{
raf2.write(flush,0,real);
break; //读取指定大小,读完退出
}
raf2.close();
raf.close();
}
}
public static void main(String[]args)
{
}
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。