合并碎片文件

package com.java.merge.www;

import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.SequenceInputStream;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Enumeration;
import java.util.List;
import java.util.Properties;

import javax.management.RuntimeErrorException;

public class MergeDmeo {

public static void main(String[] args) throws IOException {
  //创建一个字节输入流
  File file=new File("D:\\ja\\spart");
  //获取配置文件
  File fileConfig=getFileConfig(file);
  //为获取配置文件中的配置信息,创建一个属性类
  Properties prop=getpProperties(fileConfig);
  //等到配置文件中要使用的信息
  Integer count= new Integer(prop.getProperty("i"));
  String filename=prop.getProperty("filename");
  //创建一个合并的方法
  Meger(file,count,filename);
 }
 /**
  * 获取配置文件信息
  * @param fileConfig
  * @throws IOException
  */
 private static Properties getpProperties(File fileConfig) throws IOException {
  //把配置文件写入写入流中
  FileInputStream fis=new FileInputStream(fileConfig);
  // 创建一个Properties 类
  Properties prop=new Properties();
  //加载这个写入流
  prop.load(fis);
  fis.close();
  return prop;
 }
 /**
  * 获取配置文件
  * @param file
  */
 
 private static File getFileConfig(File file) {
  //判断这个目录是否存在和是否是目录
  if(!(file.exists()&&file.isDirectory())){
   throw new RuntimeException("该文件不存在或者不是目录");
  }
  //过滤里面的文件们 来获取指定的配置文件
  File[] files=file.listFiles(new FileFilter() {
   
   @Override
   public boolean accept(File filenames) {
    
    return filenames.getName().endsWith(".properties");
   }
  });
  int len=files.length;
  if(len!=1){
   throw new RuntimeException("配置文件过多,无法完成以下操作");
  }
  return files[0];
 }
 /**
  * 合并碎片
  * @param file
  * @throws IOException
  */
 private static void Meger(File file,Integer count,String filename) throws FileNotFoundException, IOException {
  //创建个集合
  List<FileInputStream> list=new ArrayList<FileInputStream>();
  for(int i=1;i<count;i++){
   list.add(new FileInputStream(new File(file,i+".avi")));
  }
  //创建个枚举对象
  Enumeration<FileInputStream> en=Collections.enumeration(list);
  // 创建逻辑流
  SequenceInputStream sqis=new SequenceInputStream(en);
  //创建一个字节输出流
  FileOutputStream fos=new FileOutputStream(new File(file,filename));
  //创建个缓冲区
  byte[] buf=new byte[1024*2048];
  int ch=0;
  while((ch=sqis.read(buf))!=-1){
   fos.write(buf,0,ch);
  }
  sqis.close();
  fos.close();
 }
}

时间: 2024-10-10 13:42:52

合并碎片文件的相关文章

文件分割器,一个读取流,相应多个输出流,并且生成的碎片文件都有有序的编号

import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.Properties; public class FileSpilte { /** * @param args * @throws IOException */

Hadoop HDFS编程 API入门系列之合并小文件到HDFS(三)

不多说,直接上代码.  代码 package zhouls.bigdata.myWholeHadoop.HDFS.hdfs7; import java.io.IOException;import java.net.URI;import java.net.URISyntaxException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FSDataInputStream;import org.apa

利用IO流把单个文件切割成碎片文件

import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Properties; public class SplitFileTest { public static void main(String[] args) throws IOException { /* * 文件切割器 * 一个读取流

Linux下目录的合并以及文件的覆盖

有两个目录test和new,test目录下有目录和文件,new目录下有更改过的一些test下的目录和文件,以及一些新增的文件,现在对两个目录进行合并以及覆盖test下的旧文件. cp -frap new/* test/ 命令其实非常简单,解释下: -f 强制覆盖,不询问yes/no(-i的默认的,即默认为交互模式,询问是否覆盖)-r 递归复制,包含目录-a 做一个备份,这里可以不用这个参数,我们可以先备份整个test目录-p 保持新文件的属性不变 记住一点就是,实现合并和覆盖是用cp,而不是mv

[转载]mapreduce合并小文件成sequencefile

mapreduce合并小文件成sequencefile http://blog.csdn.net/xiao_jun_0820/article/details/42747537

javaSE中的输入输出流---一个读取流,对应多个输出流。而且生成的碎片文件都有有序的编号

<span style="font-size:18px;">package com.io.other.split; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.Properties;

获取google翻译的音频文件_合并音频文件的方法

1. 把引文输入google 翻译,然后点击“朗读” 2. 按下F12键,打开也变调试窗口,在网络标签页中,算中“媒体”列表,删选出媒体文件如下: 3. 获取音频文件 选中请求网址,复制网址,在浏览器中黏贴,访问 右键弹出菜单中,选中“另存为”,即可获取“音频文件” 4. 合并音频文件片段 因为google翻译,会截取翻译的段落为一段一段,所以获取的翻译文件也是一段一段的. 分别下载后,并按照顺序明明每个音频文件. 如文件 0001.MP3, 0002.mp3, 0003.MP3 算中第一个文件

matlab批量合并txt文件

1: %% merge.m 2: %%%%Main程序%%%%%% 3: %%%%%% 4: %%%%%%本程序合并完各个子文件夹中的txt到主文件目录下,并且合并的文件以子文件夹名字命名 5: %%%%%%同时,每次合并时,如果主文件夹已存在某一个子文件夹名字A的txt文件,那么此次合并,将把当前 6: %%%%%%这个子文件夹A中所有的txt文件追加到子文件夹A.txt文件的末尾处. 7: clear; 8: clc; 9: % MainFolder='D:\Master-FTP\磁流变阻尼

搭建基于 HDFS 碎片文件存储服务

安装 JDK HDFS 依赖 Java 环境,这里我们使用 yum 安装 JDK 8,在终端中键入如下命令: yum -y install java-1.8.0-openjdk* 使用如下命令查看下 Java 版本,我们可以验证 JDK 是否已成功安装: java -version 配置 Java 环境变量 在编辑器中打开文件 /etc/profile,在文件末尾追加如下内容,配置 Java 环境变量: export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjd