Java-->利用文件指针分割文件
--> 大体上和字节流分割的方式没什么区别,只是加入文件指针确定要开始分割的位置...
package com.dragon.java.splitmp3; import java.io.File;
import java.io.RandomAccessFile;
import java.util.Scanner; public class Test {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要分割的文件路径:");
String filePath = scanner.next();
File srcFile = new File(filePath);
System.out.println("请输入要分割的份数:");
int n = scanner.nextInt(); long pointer = 0;
// 分成 n 段,每段的长度,加 1 为防止数据丢失
long parentLength = srcFile.length() / n + 1;
RandomAccessFile rafSrc = new RandomAccessFile(srcFile, "r");
for (int i = 1; i < n + 1; i++) {
// 分割的子文件的名字
RandomAccessFile rafDec = new RandomAccessFile(new File(
srcFile.getParent(), "part" + i + "."
+ srcFile.getName().split("\\.")[1]), "rw"); // 将文件指针 指向上次分割完成时的指针位置
rafSrc.seek(pointer); byte[] buffer = new byte[(int) parentLength];
int len = rafSrc.read(buffer);
rafDec.write(buffer, 0, len);
pointer = rafSrc.getFilePointer(); }
}
}
--> 这次分割了一个mp3 文件,意外地发现居然子文件都是有效的,所以说音频文件的数据存储方式和图片以及视频文件不一样么...
Java-->利用文件指针分割文件的更多相关文章
- 02-IOSCore - NSFileHandle、合并文件、文件指针、文件查看器
[day0201_NSFileHandle]:文件句柄 1 NSFileHandle 文件对接器.文件句柄 常用API: - (NSData *)readDataToEndOfFile;读取数据到最后 ...
- java利用webuploader实现超大文件分片上传、断点续传
我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用. 首先我们需要了解的是上传文件三要素: 1.表单提交方式:post (get方式提交有大小 ...
- python 文件指针及文件覆盖
1.文件纯净模式延伸 r+t:可读.可写 w+t:可写.可读with open('b.txt','w+t',encoding='utf-8') as f: print(f.readable()) pr ...
- Linux下的文件操作——基于文件指针的文件操作(缓冲)
目录操作 创建和删除目录: 原型为: #include <sys/stat.h> #include <sys/types.h> #include <unistd.h> ...
- JAVA 利用JNI加密class文件/自定义ClassLoader 类
利用 JNI 对bytecode 加密.不影响java程序员的正常开发.09年的时候写的,现在拿出来晒晒————————————————————————————混淆才是王道,如果混淆再加密就更酷了.. ...
- JAVA利用poi获取world文件内容
本文主要简单介绍了利用poi包,读取world文件内容. 这个依然存在版本的问题,只能读取doc结尾的老版本文件. 话不多说,上代码: import java.io.File; import java ...
- java 利用SMB读取远程文件
package com.yss.test.FileReadWriter; import java.io.BufferedInputStream; import java.io.BufferedO ...
- Java 利用 poi 生成 Excel文件的通用例子
在用java 写数据库应用的时候, 通常会生成各种报表,而这些报表可能会被导出为各种格式的文件,比如Excel文档,pdf 文档等等. 今天先做了一个生成Excel 文档的例子,主要解决以下问题: 生 ...
- java 利用TCP上传文件
从客户端上传到服务器端,其实本质上也就是复制! package july76net; //上传文件(文本) import java.io.BufferedReader; import java.io. ...
随机推荐
- js方法控制html表格的增加和删除
<!DOCTYPE html> <html> <head> <title>linshi3.html</title> <meta htt ...
- 小记:获取post和get请求。
package com.lixu.httpget_post; import java.io.ByteArrayOutputStream; import java.io.IOException; imp ...
- Halcon 10.0:Hobject图像转CBitmap
void HImage2CBitmap(Hobject pImage,CBitmap *wImage) { char lpcsType[MAX_STRING]; Hlong lPointer,widt ...
- mysql的binlog
mysql> show global variables like '%bin%'; +---------------------------------+------------------- ...
- hdu 4609 3-idiots
http://acm.hdu.edu.cn/showproblem.php?pid=4609 FFT 不会 找了个模板 代码: #include <iostream> #include ...
- C-crash的方法
#include <iostream> using namespace std; int main() { #if 0 //devide by 0 ; ; double d = i/j; ...
- 基于MVC的应用框架之Struts前奏
1.JSP&Servlet中的MVC MVC的关键是,业务逻辑要与表示分离.通过把业务逻辑放在一个“模型”中,这样业务逻辑本身就能作为一个可重用的JAVA类存在. 在JSP&Servl ...
- ios开发逆向传值的几种方法整理
第一种:代理传值 第二个控制器: @protocol WJSecondViewControllerDelegate <NSObject> - (void)changeText:(NSStr ...
- Processon 一款基于HTML5的在线作图工具
CSDN的蒋涛不久前在微博上评价说ProcessOn是web版的visio,出于好奇私下对ProcessOn进行了一番研究.最后发现无论是在用户体验上,还是在技术上,ProcessOn都比微软的Vis ...
- Linux文件管理系统
首先了解一般linux文件系统的构成. */usr/bin./bin : 存放所有用户可以执行的命令 */usr/sbin ./sbin :存放只有root可以执行的命令 */home : 用户缺省宿 ...