用输入输出流做的
一个 JPG 文件的拆分和合并的问题 不大会做 求高人帮忙import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;public class CfenHbin {
public static void main(String[] args) throws IOException {
File f = new File("d:/a.jpg");
InputStream in = new FileInputStream(f);
int i = 1;
byte[] b = new byte[512];
int fa = in.read(b);
File ff = new File("d:/b.jpg");
OutputStream out = new FileOutputStream(ff);
while (fa != -1) {
out.write(b, 0, fa);
fa = in.read(b);
i++;
}
}
}我只写出这个来了…… 但是 应该是拆成 几个文件 然后再合并 大家帮帮忙
一个 JPG 文件的拆分和合并的问题 不大会做 求高人帮忙import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;public class CfenHbin {
public static void main(String[] args) throws IOException {
File f = new File("d:/a.jpg");
InputStream in = new FileInputStream(f);
int i = 1;
byte[] b = new byte[512];
int fa = in.read(b);
File ff = new File("d:/b.jpg");
OutputStream out = new FileOutputStream(ff);
while (fa != -1) {
out.write(b, 0, fa);
fa = in.read(b);
i++;
}
}
}我只写出这个来了…… 但是 应该是拆成 几个文件 然后再合并 大家帮帮忙
InputStream in = new FileInputStream(f);
int i = 1;
byte[] b = new byte[512];
int fa;
String filename = "d:/b.jpg";
while ((fa=in.read(b)) != -1) {
OutputStream out = new FileOutputStream(new File(filename+i));
out.write(b, 0, fa);
out.close();
i++;
}
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.SequenceInputStream;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;//一个 JPG 文件的拆分和合并的问题
public class JpgSplit { /**
* @param args
*/
public void seperate(String filename,int size)throws IOException{
FileInputStream fis=new FileInputStream(new File(filename));
BufferedInputStream bis=new BufferedInputStream(fis);
byte[] data=new byte[1];
int count=0;
if(fis.available()%size ==0)
count=fis.available()/size;
else
count=fis.available()/size+1;
for(int i=0;i<count;i++){
int num=0;
File file=new File(filename+"_"+(i+1));
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(file));
while(bis.read(data)!=-1){
bos.write(data);
num++;
if(num==size){
bos.flush();
bos.close();
break;
}
}
}
System.out.println("分割为"+count+"个文件");
}
public void concatenate(String filename,int number) throws IOException{
List<InputStream> list=new ArrayList<InputStream>();
for(int i=0;i<number;i++){
File file=new File(filename+"_"+(i+1));
list.add(i, new FileInputStream(file));
}
final Iterator<InputStream> iterator=list.iterator();
Enumeration<InputStream> enumeration=new Enumeration<InputStream>(){
public boolean hasMoreElements(){
return iterator.hasNext();
}
public InputStream nextElement(){
return iterator.next();
}
};
BufferedInputStream bis=new BufferedInputStream(new SequenceInputStream(enumeration),8192);
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(filename),8192);
byte[] data=new byte[1];
while(bis.read(data)!=-1)
bos.write(data);
bis.close();
bos.flush();
bos.close();
System.out.println("组合"+number+"个文件 OK!!");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
JpgSplit js=new JpgSplit();
try{
// js.seperate("E:\\a.JPG", 100000);
js.concatenate("E:\\a.JPG", 15);
}catch(Exception e){
e.printStackTrace();
} }}