首页 > 代码库 > SequenceInputStream
SequenceInputStream
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.SequenceInputStream;import java.util.ArrayList;import java.util.Enumeration;import java.util.Vector;/*SequenceInputStream(序列流) 需求:把a.txt与b.txt 文件的内容合并。 */public class Demo1 { public static void main(String[] args) throws IOException { merge3(); } //把三个文件合并成一个文件 public static void merge3() throws IOException{ //找到目标文件 File file1 = new File("F:\\a.txt"); File file2 = new File("F:\\b.txt"); File file3 = new File("F:\\c.txt"); File file4 = new File("F:\\d.txt"); //建立对应 的输入输出流对象 FileOutputStream fileOutputStream = new FileOutputStream(file4); FileInputStream fileInputStream1 = new FileInputStream(file1); FileInputStream fileInputStream2 = new FileInputStream(file2); FileInputStream fileInputStream3 = new FileInputStream(file3); //创建序列流对象 Vector<FileInputStream> vector = new Vector<FileInputStream>(); vector.add(fileInputStream1); vector.add(fileInputStream2); vector.add(fileInputStream3); Enumeration<FileInputStream> e = vector.elements(); SequenceInputStream sequenceInputStream = new SequenceInputStream(e); //读取文件数据 byte[] buf = new byte[1024]; int length = 0; while((length = sequenceInputStream.read(buf))!=-1){ fileOutputStream.write(buf,0,length); } //关闭资源 sequenceInputStream.close(); fileOutputStream.close(); } // 使用SequenceInputStream合并文件。 public static void merge2() throws IOException{ //找到目标文件 File inFile1 = new File("F:\\a.txt"); File inFile2 = new File("F:\\b.txt"); File outFile = new File("F:\\c.txt"); //建立数据的输入输出通道 FileOutputStream fileOutputStream = new FileOutputStream(outFile); FileInputStream fileInputStream1 = new FileInputStream(inFile1); FileInputStream fileInputStream2 = new FileInputStream(inFile2); //建立序列流对象 SequenceInputStream inputStream = new SequenceInputStream(fileInputStream1,fileInputStream2); byte[] buf = new byte[1024]; int length = 0 ; while((length = inputStream.read(buf))!=-1){ fileOutputStream.write(buf,0,length); } //关闭资源 inputStream.close(); fileOutputStream.close(); } //需求:把a.txt与b.txt 文件的内容合并。 public static void merge1() throws IOException{ //找到目标文件 File inFile1 = new File("F:\\a.txt"); File inFile2 = new File("F:\\b.txt"); File outFile = new File("F:\\c.txt"); //建立数据的输入输出通道 FileOutputStream fileOutputStream = new FileOutputStream(outFile); FileInputStream fileInputStream1 = new FileInputStream(inFile1); FileInputStream fileInputStream2 = new FileInputStream(inFile2); //把输入流存储到集合中,然后再从集合中读取 ArrayList<FileInputStream> list = new ArrayList<FileInputStream>(); list.add(fileInputStream1); list.add(fileInputStream2); //准备一个缓冲数组 byte[] buf = new byte[1024]; int length = 0 ; for(int i = 0 ; i< list.size() ; i++){ FileInputStream fileInputStream = list.get(i); while((length = fileInputStream.read(buf))!=-1){ fileOutputStream.write(buf,0,length); } //关闭资源 fileInputStream.close(); } fileOutputStream.close(); }}
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.SequenceInputStream;import java.util.Enumeration;import java.util.Vector;/* 需求: 把一首mp3先切割成n份,然后再把这些文件合并起来。 */public class Demo2 { public static void main(String[] args) throws IOException {// cutFile(); mergeFlile(); } //合并 public static void mergeFlile() throws IOException{ //找到目标文件 File dir = new File("F:\\music"); //通过目标文件夹找到所有的MP3文件,然后把所有的MP3文件添加到vector中。 Vector<FileInputStream> vector = new Vector<FileInputStream>(); File[] files = dir.listFiles(); for(File file : files){ if(file.getName().endsWith(".mp3")){ vector.add(new FileInputStream(file)); } } //通过Vector获取迭代器 Enumeration<FileInputStream> e = vector.elements(); //创建序列流 SequenceInputStream inputStream = new SequenceInputStream(e); //建立文件的输出通道 FileOutputStream fileOutputStream = new FileOutputStream("F:\\合并.mp3"); //建立缓冲数组读取文件 byte[] buf = new byte[1024]; int length = 0 ; while((length = inputStream.read(buf))!=-1){ fileOutputStream.write(buf,0,length); } //关闭资源 fileOutputStream.close(); inputStream.close(); } //切割MP3 public static void cutFile() throws IOException{ File file = new File("F:\\美女\\1.mp3"); //目标文件夹 File dir = new File("F:\\music"); //建立数据的输入通道 FileInputStream fileInputStream = new FileInputStream(file); //建立缓冲数组读取 byte[] buf = new byte[1024*1024]; int length = 0; for(int i = 0 ; (length = fileInputStream.read(buf))!=-1 ; i++){ FileOutputStream fileOutputStream = new FileOutputStream(new File(dir,"part"+i+".mp3")); fileOutputStream.write(buf,0,length); fileOutputStream.close(); } //关闭资源 fileInputStream.close(); } }
SequenceInputStream
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。