出典:こんにちは学習ネットワーク敏感と熱心なフォーラムはwww.piaodoo.comお互いから学ぶことを歓迎します
詳細動作フロースプリットとマージファイルのJavaの例
入力および出力ファイルストリームの、小さな、例えば、ファイル分割及びマージを所有しています。
ここでは、コードは次のようになります。
パッケージcom.dufy.file。 インポートのjava.io.File; 輸入java.io.FileInputStream; 輸入java.io.FileOutputStreamは、 インポートにjava.io.IOException; 輸入java.io.SequenceInputStream; 輸入はjava.util.ArrayList; 輸入java.util.Collections。 インポートのjava.util.Enumeration; 輸入はjava.util.List; / ** *カットとマージファイル *カットとマージファイルへの1:メイン考慮事項の送信元アドレスは、ファイル、送信先アドレス、一時的な保存場所とファイル名をあります * 2.切削文書:一時的に格納されたアドレスが存在するかどうかを決定する、それが作成され、存在しない、ファイルが送信元アドレスから読み出され、切断作業をファイルの所定の大きさに応じて、一時的なアドレスに * 3.マージファイル:それが作成され、与えられたターゲットアドレスが存在するかどうか、それが存在しないかを決定;リストが定義されたファイルをステージングの設定は、すべてのセットリストに読み出さ対処します *その後、すべてのファイル、マージファイルがストリームをマージ列挙リストを使用 *住所は最後のターゲットに書き込ま *注:この例は、すべての例外がスローされている方法を使用しています * @author aflyun * * / パブリッククラスTestFileCutUnion { 公共の静的な無効メイン(文字列[]引数)はIOExceptionが{スロー 文字列FSRC = "D:/1.jpg"; //ソースファイルディレクトリ 文字列FDIR = "D:/ 1"; //ターゲットファイルのディレクトリ 文字列fTemp = "D:/ 2"; //一時ファイルディレクトリ ファイルSRCFILE =新しいファイル(FSRC)。 ファイルdirFileは、新しいFile(FDIR)を=。 ファイルの一時ファイルは、新しいFile(fTemp)を=。 文字列fileNameに= srcFile.getName(); //ファイルの名前を取得 cutFile(SRCFILE、一時ファイル); //コールセグメンテーション unionFile(dirFile、一時ファイルは、ファイル名); //マージメソッド呼び出し } / ** *カットファイル * @Param SRCFILE * @param TEMPFILE * @throws IOExceptionが * / 公共の静的な無効cutFile(ファイルSRCFILE、ファイルテンポラリ・ファイル)は、IOExceptionがスロー{ //送信元アドレスファイルを読み込みます FileInputStreamのFIS =新しいFileInputStreamを(SRCFILE)。 FileOutputStream fosの= NULL; //ファイルが作成されていない場合 (もし!tempFile.isFile()){ tempFile.mkdirs(); } バイト[] B =新しいバイト[100]。 int型のlen = 0; int型のカウント= 0; 一方、((LEN = fis.read(B))!= -1){ int型NUM = ++数えます。 //一時アドレスのディレクトリを作成します FOS =新しいのFileOutputStream(新しいファイル(一時ファイル、NUM +) "の部分。"); fos.write(B、0、LEN)。 } fos.flush(); )(fos.close。 fis.close(); System.out.println( "分割が完了しています!"); } / ** *マージファイル * @Param dirFile * @param TEMPFILE * @param fileNameに * @throws IOExceptionが * / 公共の静的な無効unionFile(ファイルdirFile、ファイルの一時ファイル、文字列filename)は、IOExceptionがスロー{ //ターゲットアドレスが存在するかを決定、作成、存在しません。 (もし!dirFile.isFile()){ dirFile.mkdirs(); } 一覧<FileInputStreamの>リスト=新しいのArrayList <のFileInputStream>(); //一時アドレスにファイルを取得 ファイル[]ファイル= tempFile.listFiles(); {(I ++; I <files.length iが0 = INT)のために //使用FileInputStreamのは、セットリストに読み込ま list.add(新しいFileInputStreamを(新しいファイル(一時ファイル、I + "の部分。"))); } すべての文書を列挙する//使用列挙(列挙) 列挙<FileInputStreamの> EUM = Collections.enumeration(リスト)。 //たSequenceInputStreamマージファイルは、ストリームをマージ たSequenceInputStream SIS =新たSequenceInputStream(EUM)。 FileOutputStream fosの=新しいのFileOutputStream(新しいファイル(dirFileファイル名)); バイト[] =新しいバイト[100]; lenはint型。 一方、((LEN = sis.read())によって!= -1){ (LEN、0、によって)fos.write。 } fos.flush(); )(fos.close。 sis.close(); System.out.println( "合併が完了しています!"); } }
ご質問がある場合は、メッセージを残したり、交換コミュニティディスカッションサイトにしてください、あなたを助けることを望んで、読書のためのおかげで、このサイトのご支援をありがとうございました!
元のアドレスは次のとおりです。http://www.piaodoo.com/thread-13236-1-2.html ストッキングを制御 www.txdah.com 131外www.buzc.org楽しく学習がよりよく学習することができます!