SequenceInputStream(序列流)
来源:互联网 发布:怎样做淘宝模板 编辑:程序博客网 时间:2024/05/21 10:17
package cn.itcast.other;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(); }}
package cn.itcast.other;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(); }}
0 0
- 序列流 SequenceInputStream
- SequenceInputStream(序列流)
- 序列流 SequenceInputStream
- SequenceInputStream 序列流
- 序列流 SequenceInputStream
- Java SequenceInputStream 序列流
- 什么是SequenceInputStream:序列流
- 序列流(SequenceInputStream)
- java SequenceInputStream 序列流
- SequenceInputStream序列流的应用
- 50-IO流(序列流-SequenceInputStream).
- 黑马程序员-----IO之序列流SequenceInputStream
- 23-IO流-50-IO流(序列流-SequenceInputStream)
- javaday52_IO流_打印流PrintStream和序列流SequenceInputStream
- 黑马程序员:合并流(序列流)的介绍:SequenceInputStream
- IO流--SequenceInputStream序列化流的应用---文件切割
- IO流--SequenceInputStream序列化流的应用--文件合并
- Java基础 IO流 File Properties PrintWriter 序列流SequenceInputStream
- 代码笔记——Toast显示文本,图片,图文
- asp.net中使用AutoCompleteExtender具体方法
- Android 可拖动的进度条:SeekBar之简单使用
- DDoS 分布式拒绝服务攻击
- 循环链表的表示与实现
- SequenceInputStream(序列流)
- 对象的输入输出流
- houdini 保存瞬间值的方法
- 哗啦啦族的01背包问题(折半枚举)
- 正则表达式入门
- html的块级元素和内联元素
- [leetcode-275]H-Index II(java)
- CSS圆角DIV
- Properties(配置文件类)