この記事では、Javaの切断およびマージ操作が大規模なファイルを実装することについて説明します。次のように、参照のために共有してください。
ここでは、大きなファイルの切断とマージを実現します。
指定された番号(ファイルを10コピーに切断するなど)でカットするか、指定されたサイズ(各コピーの最大数などが10mを超えないなど)でカットします。どちらの方法も大丈夫です。
ここで私はあなたのためにいくつかの簡単なコードを書いているだけです:
パッケージio2; 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.util.util.util.util.util. java.util.enumeration; Import javax.swing.jfilechooser; public class filessplitdemo {/***大きなファイルの切断とマージを実現します。指定された番号(ファイルを10コピーに切断するなど)でカットするか、指定されたサイズ(各コピーの最大数などが10mを超えないなど)でカットします。どちらの方法も大丈夫です。 */public static void main(string [] args){jfilechooser jfc = new jfilechooser(); // shinkでファイルを選択する// select file int result = jfc.showopendialog(null); //ディスプレイフレームはファイルファイル= null; jfilechooser.approve_option){// select file // cut file file = jfc.getSelectedFile(); //ユーザー選択ファイルdest = new file(file.getParent()、 "splifile"); cutingfile(file、dest); // cut method // cut = cut shigs file filename = cut filename file.getName(); mergedemo(dest、filename); // merge file}} catch(ioexception e){// todo auto-generated catch blocke.printstacktrace();}} private void mergedemo(file dest、string filename)throws ioexception {// robust protence(file open open open(hand (!dest.exists()){throw new runtimeException( "ファイルは存在しません");} //ファイル配列を使用して、すべてのファイルを内部にロードします。ファイルパート[] = dest.listfiles(); //抽象パス名の配列を返します。これらのパス名は、この抽象パス名で表されるディレクトリ内のファイルを表します。 if(parth.length == 0){throw new runtimeexception( "fragment no not");} // yシーケンスストリームを使用してArrayList <FileInputStream> list = new ArrayList <FileInputStream>(); // fileinputStream(parth [i])); // Object Interface Enumeration <FileInputStream> en = collections.Numeration(list); SequenceInputStream sq = new sequenceinputStream(en); // new fileoutputStream fou = new fileoutputStream(new file(dest、filename)); byte buf [] = new byte [1024]; sq.read(buf); int len = 0; len);} fou.close(); sq.close();} private static void cuttingfile(file source、file dest){// cut try {fileinputStream fis = new fileinputStream(source); if(!dest.exists()){//ファイル操作IOストリームを決定するかどうかを判断します。 dest.mkdir();} byte buf [] = new byte [1024 * 1024]; // 1mfis.read(buf); int len = 0; int cout = 1; (Cout ++)+"part")))) blocke.printstacktrace();}}}ファイルの切断:ファイルを複数のピースに切ります。各断片の部分は1mを超えてはなりません。ファイル名、切断前の長さ、切断後のピースの数、ファイル名、およびその他の情報を最初のピースに書き込むか、プロパティを使用してこれらを構成ファイルに書き込むことができます。
ファイルマージ:ファイルオブジェクトの名前とマージされた元のファイルが既知であるという簡単な仮定があります。実際、これらは完全に生きている可能性があります。この情報を断片化したファイルまたは構成ファイルに保存する場合は、ファイル選択ダイアログボックスを使用してユーザーの選択を読み取ることもできます。
Javaアルゴリズムの詳細については、このサイトに興味のある読者は、「Javaファイルの要約とディレクトリ操作スキルの要約」、「Javaデータ構造とアルゴリズムに関するチュートリアル」、「Java操作DOMノードスキルの概要」、「Java Cache操作スキルの要約」を見ることができます。
この記事がみんなのJavaプログラミングに役立つことを願っています。