ダークホースプログラマー-ファイルのマージと切断
4642 ワード
----------- androidトレーニング、JAvaトレーニング、java学習型技術ブログ、あなたとの交流を楽しみにしています! ------------
/*ストリームのマージ: 1つのソースファイルを1つのファイルにマージ 構築方法: Vector(Collection c) 指定したcollectionの要素を含むベクトルを構築します. これらの要素はcollectionの反復器によって要素の順序で並べ替えられます. SequenceInputStream(Enumeration e) パラメータを覚えて新しく作成したSequenceInputStreamを初期化し、 このパラメータは、実行時タイプがInputStreamオブジェクトであるEnumeration型パラメータを生成する必要があります. 方法: Enumeration <> elements() このベクトルのコンポーネントの列挙を返します. */
2つのパラメータの、直接new 2つのオブジェクトでいいです
切断ファイル:1つの質問対象を複数のファイルに切断し、切断後にマージし、まずsplitFileメソッドをコンパイルする.すなわち、先にカットし、マージする.ここでマージするArrayListクラスは、Vectorクラスより性能が高い
----------- androidトレーニング、JAvaトレーニング、java学習型技術ブログ、あなたとの交流を楽しみにしています! ------------
/*ストリームのマージ: 1つのソースファイルを1つのファイルにマージ 構築方法: Vector(Collection c) 指定したcollectionの要素を含むベクトルを構築します. これらの要素はcollectionの反復器によって要素の順序で並べ替えられます. SequenceInputStream(Enumeration e) パラメータを覚えて新しく作成したSequenceInputStreamを初期化し、 このパラメータは、実行時タイプがInputStreamオブジェクトであるEnumeration型パラメータを生成する必要があります. 方法: Enumeration <> elements() このベクトルのコンポーネントの列挙を返します. */
import java.util.*;
import java.io.*;
class SequenceDemo
{
public static void main(String[] args) throws IOException
{
//
Vector<FileInputStream> v=new Vector<FileInputStream>();
v.add(new FileInputStream("D:\\TDDOWNLOAD\\javawork\\ \\ \\1.txt"));
v.add(new FileInputStream("D:\\TDDOWNLOAD\\javawork\\ \\ \\2.txt"));
v.add(new FileInputStream("D:\\TDDOWNLOAD\\javawork\\ \\ \\3.txt"));
Enumeration<FileInputStream> en=v.elements();
SequenceInputStream sis=new SequenceInputStream(en);//
FileOutputStream fos=new FileOutputStream("D:\\TDDOWNLOAD\\javawork\\ \\ \\4.txt");
byte[] buf=new byte[1024];
int len=0;
while((len=sis.read(buf))!=-1)
{
fos.write(buf,0,len);
}
fos.close();
sis.close();
}
}
2つのパラメータの、直接new 2つのオブジェクトでいいです
FileInputStream fis1=new FileInputStream("D:\\TDDOWNLOAD\\javawork\\ \\ \\1.txt");
FileInputStream fis2=new FileInputStream("D:\\TDDOWNLOAD\\javawork\\ \\ \\2.txt");
SequenceInputStream sis=new SequenceInputStream(fis1,fis2);
FileOutputStream fos=new FileOutputStream("D:\\TDDOWNLOAD\\javawork\\ \\ \\4.txt");
切断ファイル:1つの質問対象を複数のファイルに切断し、切断後にマージし、まずsplitFileメソッドをコンパイルする.すなわち、先にカットし、マージする.ここでマージするArrayListクラスは、Vectorクラスより性能が高い
import java.util.*;
import java.io.*;
class SplitDemo
{
public static void main(String[] args) throws IOException
{
//SplitFile();
SequenceFile();
}
public static void SequenceFile()throws IOException
{
ArrayList<FileInputStream> al=new ArrayList<FileInputStream>();//ArrayList vetor
for(int x=1;x<=3;x++)
{
al.add(new FileInputStream("D:\\TDDOWNLOAD\\javawork\\ \\ \\"+x+".part"));
}
final Iterator<FileInputStream> it=al.iterator();
Enumeration<FileInputStream> en=new Enumeration<FileInputStream>()
{
public boolean hasMoreElements()// it;
{
return it.hasNext();
}
public FileInputStream nextElement()
{
return it.next();
}
};
SequenceInputStream sis=new SequenceInputStream(en);//
FileOutputStream fos=new FileOutputStream("D:\\TDDOWNLOAD\\javawork\\ \\ \\SequenceFile.pdf");
byte[] buf=new byte[1024];
int len=0;
while((len=sis.read(buf))!=-1)
{
fos.write(buf,0,len);
}
fos.close();
sis.close();
}
public static void SplitFile() throws IOException
{
FileInputStream fis=new FileInputStream("D:\\TDDOWNLOAD\\javawork\\ \\ \\03.pdf");
FileOutputStream fos=null;//
byte[] buf=new byte[1024*1024];// 1M ,03.pdf 2.28 MB (2,398,408 ),
int len=0;
int count=1;
while((len=fis.read(buf))!=-1)
{
fos=new FileOutputStream("D:\\TDDOWNLOAD\\javawork\\ \\ \\"+(count++)+".part");
fos.write(buf,0,len);
fos.close();
}
fis.close();
}
}
----------- androidトレーニング、JAvaトレーニング、java学習型技術ブログ、あなたとの交流を楽しみにしています! ------------