黑马程序员------ io流对一个图片文件进行分割与合并
2015-03-27 19:38
302 查看
黑马程序员------ io流对一个图片文件进行分割与合并
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交-------
一. 要把一个字节输入流的相关联的图片文件A.jpg 进行分割成三部分数据文件1.part 2.part 3.part
步骤:1首相建立一个字节输入流的对象fis相及关联的图片文件A.jpg
2建立缓冲区字节数组buf,把读取的三部分数据文件1.part 2.part 3.part分别存在数组里
3建立第一个字节输出流的对象fos1= new FileOutputStream("c:\\1.part");
把数组的数据(第一碎片数据)存入到 字节输出流的对象fos1关联的文件里c:\\1.part
4建立第二个字节输出流的对象fos2= new FileOutputStream("c:\\2.part");
把数组的数据(第二碎片数据)存入到 字节输出流的对象fos2关联的文件里c:\\2.part
5建立第三个字节输出流的对象fos3= new FileOutputStream("c:\\3.part");
把数组的数据(第三碎片数据)存入到 字节输出流的对象fos3关联的文件里c:\\3.part
二. 把这三部分碎片数据文件1.part 2.part 3.part合并一起存储字节输出流对象
fos = new FileOutputStream("d:\\B.jpg")的关联文件d:\\B.jpg里。
步骤1.首先建立ArryList集合的对象 al这三部分碎片数据文件1.part 2.part 3.part都读取到集合中
2.获取集合ArryList集合的对象 al的三个碎片元素1.part 2.part 3.part 通过Iterator迭代和Enumeration枚举和获取元素
3.通过合并输入流Sequence把通过迭代器和Enumeration枚举和获取元素合并为一个相关联的文件
4.建立字节输出流对象fos = new FileOutputStream("d:\\B.jpg")及相关联图片文件d:\\B.jpg
5.建立一个字节数组 buf 用来存储读取的文件
6通过while循环,把数组 的所有数据写入到保存到字节输出流对象fos = new FileOutputStream("d:\\B.jpg")的关联文件
d:\\B.jpg里。
import java.io.*;
import java.util.*;
class FenHe
{
public static void main(String[] args)
{
splitFile();
merpeFile();
}
public static void splitFile() throws IOException
{ //建立字节输入流,并读取文件 A.jpg(已存在)
FileInputStream fis =new FileInputStream("c:\\A.jpg");
FileOutputStream fos = null;
//建立缓冲区数组,。把读取的数据存贮在数组里buf
byte[] buf = new byte[1024*1024];
//int len=fis.read(buf);
int len =0;
int count=1;
//while循环从数组分别读取三次数据,每次读取的数据分别存储到三个文件 1.part 2.part 3.part
while((len = fis.read(buf))!=-1)
{
int len =fis.read(buf);
//c: 1 .part
fos=new FileOutputStream("c:"+(count++)+".part");
fos.write(buf,0,len);
fos.close();
}
fis.close();
}
public static void merpeFile() throws IOException
{
//建立ArrayList集合,把1.part 2.part 3.part三个文件添加到集合里
ArrayList<FileInputStream> al = new ArrayList<FileInputStream>();
al.add(FileInputStream("c:\\1.part"));
al.add(FileInputStream("c:\\2.part"));
al.add(FileInputStream("c:\\3.part"));
/*或者用for循环也可以
for(int x=1;x<=3;x++)
{ al.add(FileInputStream("c:\\"+x+".part"));}*/
// 获取集合中的元素,用Iterator迭代和枚举Enumeration方法获取
Iterator<FileInputStream> it=al.iterator();
Enumeration<FileInputStream> en =new Enmeration<FileInputStream>()
{
public boolean hasMoreElement()
{ return it.hasNext();}
public FileInputStream nextElement()
{ return it.next();}
}
SequenceInputStream sis =new SequenceInputStream(en);
//建立输出流,建立新建文件 B.jpg
FileOutputStream fos = new FileOutputStream("d:\\B.jpg");
//建立字节数组缓冲区 读取数组数据,并写入到新建文件里
byte[] buf = new byte[1024*1024];
// int len=sis.read(buf);
int len = 0;
while( (len=sis.read(buf))!=-1 )
{
int len=sis.read(buf);
fos.write(buf,0,len);
}
fos.close();
fis.close();
}
}
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交-------
一. 要把一个字节输入流的相关联的图片文件A.jpg 进行分割成三部分数据文件1.part 2.part 3.part
步骤:1首相建立一个字节输入流的对象fis相及关联的图片文件A.jpg
2建立缓冲区字节数组buf,把读取的三部分数据文件1.part 2.part 3.part分别存在数组里
3建立第一个字节输出流的对象fos1= new FileOutputStream("c:\\1.part");
把数组的数据(第一碎片数据)存入到 字节输出流的对象fos1关联的文件里c:\\1.part
4建立第二个字节输出流的对象fos2= new FileOutputStream("c:\\2.part");
把数组的数据(第二碎片数据)存入到 字节输出流的对象fos2关联的文件里c:\\2.part
5建立第三个字节输出流的对象fos3= new FileOutputStream("c:\\3.part");
把数组的数据(第三碎片数据)存入到 字节输出流的对象fos3关联的文件里c:\\3.part
二. 把这三部分碎片数据文件1.part 2.part 3.part合并一起存储字节输出流对象
fos = new FileOutputStream("d:\\B.jpg")的关联文件d:\\B.jpg里。
步骤1.首先建立ArryList集合的对象 al这三部分碎片数据文件1.part 2.part 3.part都读取到集合中
2.获取集合ArryList集合的对象 al的三个碎片元素1.part 2.part 3.part 通过Iterator迭代和Enumeration枚举和获取元素
3.通过合并输入流Sequence把通过迭代器和Enumeration枚举和获取元素合并为一个相关联的文件
4.建立字节输出流对象fos = new FileOutputStream("d:\\B.jpg")及相关联图片文件d:\\B.jpg
5.建立一个字节数组 buf 用来存储读取的文件
6通过while循环,把数组 的所有数据写入到保存到字节输出流对象fos = new FileOutputStream("d:\\B.jpg")的关联文件
d:\\B.jpg里。
import java.io.*;
import java.util.*;
class FenHe
{
public static void main(String[] args)
{
splitFile();
merpeFile();
}
public static void splitFile() throws IOException
{ //建立字节输入流,并读取文件 A.jpg(已存在)
FileInputStream fis =new FileInputStream("c:\\A.jpg");
FileOutputStream fos = null;
//建立缓冲区数组,。把读取的数据存贮在数组里buf
byte[] buf = new byte[1024*1024];
//int len=fis.read(buf);
int len =0;
int count=1;
//while循环从数组分别读取三次数据,每次读取的数据分别存储到三个文件 1.part 2.part 3.part
while((len = fis.read(buf))!=-1)
{
int len =fis.read(buf);
//c: 1 .part
fos=new FileOutputStream("c:"+(count++)+".part");
fos.write(buf,0,len);
fos.close();
}
fis.close();
}
public static void merpeFile() throws IOException
{
//建立ArrayList集合,把1.part 2.part 3.part三个文件添加到集合里
ArrayList<FileInputStream> al = new ArrayList<FileInputStream>();
al.add(FileInputStream("c:\\1.part"));
al.add(FileInputStream("c:\\2.part"));
al.add(FileInputStream("c:\\3.part"));
/*或者用for循环也可以
for(int x=1;x<=3;x++)
{ al.add(FileInputStream("c:\\"+x+".part"));}*/
// 获取集合中的元素,用Iterator迭代和枚举Enumeration方法获取
Iterator<FileInputStream> it=al.iterator();
Enumeration<FileInputStream> en =new Enmeration<FileInputStream>()
{
public boolean hasMoreElement()
{ return it.hasNext();}
public FileInputStream nextElement()
{ return it.next();}
}
SequenceInputStream sis =new SequenceInputStream(en);
//建立输出流,建立新建文件 B.jpg
FileOutputStream fos = new FileOutputStream("d:\\B.jpg");
//建立字节数组缓冲区 读取数组数据,并写入到新建文件里
byte[] buf = new byte[1024*1024];
// int len=sis.read(buf);
int len = 0;
while( (len=sis.read(buf))!=-1 )
{
int len=sis.read(buf);
fos.write(buf,0,len);
}
fos.close();
fis.close();
}
}
相关文章推荐
- Java-使用IO流对大文件进行分割和分割后的合并
- 黑马程序员——SequenceInputStream流将分割后的文件进行合并
- 使用java类SequenceInputStream 对一个文件进行分割和合并的操作
- 黑马程序员 编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中, a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。
- Java-使用IO流对大文件进行分割和分割后的合并
- Java-使用IO流对大文件进行分割和分割后的合并
- javaday53_IO流_文件分割与文件合并的综合应用
- 根据给定分割文件的分数进行进行分割与使用配置文件合并文件
- java的IO流----将多个拆分的子文件合并为一个目标文件
- Java的IO操作(四) - SequenceInputStream类,实例:一个文件分割、合并工具
- 二个图片合并成一个图片并保存成一个新文件
- 黑马程序员——>第二十天<io流(File-Proterties-合并流-切割文件)>
- 编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔
- Java的IO操作(四) - SequenceInputStream类,实例:一个文件分割、合并工具
- Java ,IO流,文件的分割与合并
- 编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔
- 黑马程序员-学习日志-文件的分割与合并
- 编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔
- 将多个 SWF 文件合并为一个 SWF 以进行 iOS 部署
- IO流_合并流读取多个文件的内容复制到一个文件中