java学习之IO文件分割
- package om.gh.homework;
- import java.io.*;
- /**
- * 实现分割文件;
- * @param file
- */
- public class HomeWork {
- /**
- * @param src
- * 要分割的文件路径
- * @param n
- * 每个文件的大小以mb为单位
- * @param desc
- * 分割的文件存放路径
- * @throws FileNotFoundException
- */
- public static void filesplit(File src, int mb, File desc)
- throws FileNotFoundException {
- // 判断文件路径
- if (src.exists() && src.isFile() && desc.isDirectory()) {
- int fileSize = mb * 1024 * 1024;
- int n;
- // 判断要分割文件的个数n;
- if (src.length() % fileSize == 0)
- n = (int) (src.length() / fileSize);
- else
- n = (int) (src.length() / fileSize) + 1;
- try {
- InputStream is = new FileInputStream(src);
- BufferedInputStream bis = new BufferedInputStream(is);
- for (int i = 0; i < n; i++) {// 循环写入每个文件;
- byte[] b = new byte[fileSize];
- String newfile = desc.getPath() + File.separator
- + src.getName()+"_"+ i + ".dat";
- BufferedOutputStream bos = new BufferedOutputStream(//缓存流
- new FileOutputStream(newfile));
- int len = -1;
- int count=0;
- while ((len = bis.read(b)) != -1) {
- bos.write(b,0,len);
- count+=len;
- bos.flush();
- if(count>=fileSize)break;
- }
- bos.close();
- }
- bis.close();
- is.close();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- } else {
- throw new FileNotFoundException("文件不存在或者参数错误!");
- }
- }
- public static void main(String[] args) {
- File src = new File("F:\\电影\\万万没想到.mp4");//要分割的目标文件
- File desc = new File("f:\\视频\\");//分割完存放的路径
- int mb = 500;// 每个文件大小,以Mb为单位;
- System.out.println("开始分割...");
- try {
- filesplit(src, mb, desc);
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- }
- System.out.println("分割完成!");
- }
- }
- package om.gh.homework;
- import java.io.*;
- /**
- * 把分割后的文件合并
- *
- * @author ganhang
- *
- */
- public class Homework2 {
- /**
- *
- * @param desc
- * 合成后的文件路径
- * @param src
- * 要合成的文件列表
- */
- public static void merge(File desc, File... src) {
- try {
- String filename = src[0].getName().substring(0,
- src[0].getName().lastIndexOf("_"));
- File newfile = new File(desc.getPath() + File.separator + filename);
- OutputStream os = new FileOutputStream(newfile);
- BufferedOutputStream bos = new BufferedOutputStream(os);
- for (int i = 0; i < src.length; i++) {
- BufferedInputStream bis = new BufferedInputStream(
- new FileInputStream(src[i]));
- byte[] b = new byte[1024 * 1024];
- int len = -1;
- while ((len = bis.read(b)) != -1) {
- bos.write(b, 0, len);
- bos.flush();
- }
- bis.close();
- }
- bos.close();
- os.close();
- System.out.println("合成成功!");
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- public static void main(String[] args) {
- File desc=new File("f:\\视频\\");
- File [] src={
- new File("f:\\视频\\万万没想到.mp4_0.dat"),
- new File("f:\\视频\\万万没想到.mp4_1.dat"),
- new File("f:\\视频\\万万没想到.mp4_2.dat"),
- new File("f:\\视频\\万万没想到.mp4_3.dat")
- };
- System.out.println("开始合成...");
- merge(desc,src);
- }
- }
java学习之IO文件分割的更多相关文章
- 6.6(java学习笔记)文件分割(IO综合例子)
基本思路: 文件分割:将一个文件分割成若干个独立的文件. 设置分割后小文件文件的字节数,然后读取被分割文件, 将对应的字节数写入分割后的小文件中. 使用seek定位下一次读取位置. 文件 ...
- Java学习之==>IO文件操作体系
一.概述 在整个 Java.io 中最重要的就是5个类和一个接口.5个类指的是 File.InputStream.OutputStream.Reader.Writer,一个接口指的是Serializa ...
- java学习一目了然——IO
java学习一目了然--IO IO是java学习当中很重要的一部分.IO流实现数据的上传下载,即读写数据,包括输入和输出流,输入流指的是将数据以字符或字节形式从外部媒介比如文件.数据库等读取到内存中所 ...
- Java学习-043-获取文件在目录中的路径
我们在日常的电脑使用中,经常需要在当前目录或当期目录及其子目录中查找文件,并获取相应的文件路径名.在我们的自动化测试中,也经常需要确认文件在目录中是否成功生成或已存在,因而我写了一个小方法来实现. 获 ...
- Java学习-014-文本文件写入实例源代码(两种写入方式)
此文源码主要为应用 Java 读取文本文件内容实例的源代码.若有不足之处,敬请大神指正,不胜感激! 第一种:文本文件写入,若文件存在则删除原文件,并重新创建文件.源代码如下所示: /** * @fun ...
- Java学习-013-文本文件读取实例源代码(两种数据返回格式)
此文源码主要为应用 Java 读取文本文件内容实例的源代码.若有不足之处,敬请大神指正,不胜感激! 1.读取的文本文件内容以一维数组[LinkedList<String>]的形式返回,源代 ...
- Java学习-011-创建文件实例及源代码
此文源码主要为应用 Java 创建文件的源代码.若有不足之处,敬请大神指正,不胜感激! 创建文件的源代码如下所示: /** * @function 文件操作:创建文件.若文件不存在,则直接创建文件:若 ...
- Java学习-010-创建文件夹源代码
此文源码主要为应用 Java 创建文件目录的源码.若有不足之处,敬请大神指正,不胜感激! 创建文件夹源代码如下所示: /** * @function 文件操作:创建文件夹.若文件夹不存在,则级联创建文 ...
- java学习笔记IO之File类
File类总结 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times } p.p2 { margin: 0.0px 0.0px 0.0p ...
随机推荐
- WebSite 文件上传Demo
知识点: 1 <!--上传文件时: 1.必须使用Post方式来提交数据 2.必须设置表单的enctype属性 3.必须在表单中包含文件域.input t ...
- Css Rest 方法
在当今网页设计/开发实践中,使用CSS来为语义化的(X)HTML标记添加样式风格是 重要的关键.在设计师们的梦想中都存在着这样的一个完美世界:所有的浏览器都能够理解和适用多有CSS规则,并且呈现相同的 ...
- 关于js封装框架类库之选择器引擎(一)
选择器模块之传统做法 var tag = function (tag){ return document.getElementsByTagName(tag); } var id = function ...
- 如何分割(split)string字符串
使用String#split()方法 如下所示: String string = "004-034556"; String[] parts = string.split(" ...
- UVA1471( LIS变形)
这是LIS的变形,题意是求一个序列中去掉某个连续的序列后,能得到的最长连续递增序列的长度. 用DP的解法是:吧这个序列用数组a来记录,再分别用两个数组f记录以i结尾的最长连续递增序列的长度,g[i]记 ...
- Asp.net 网站发布之文件系统方式
1.选中项目右键→发布方式选[文件系统]→点击发布 2.打开[Internet 信息服务(IIS)管理器] 默认网站(Default Web Site)→添加应用程序 填写[别名],[物理路径]选择上 ...
- mysql xtrabackup 备份恢复实现,mysql命令备份数据库,打包压缩数据库
简介 Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具.特点: (1)备份过程快速.可靠 ...
- Python 安装、循环语句、数据类型(一)
一.关于版本的选择 Should i use Python 2 or Python 3 for my development activity?转载自Python官网 Short version: P ...
- Git merge local repository
I've met this problem for so many times and let me write a blog for solving this problem. First, you ...
- 读取IOS的相应路径
// IOS相应路径 NSString* bundlePath = [[NSBundle mainBundle] bundlePath]; NSLog(@"bundlePath = % ...