이 기사는 큰 파일을 구현하기 위해 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.arraylist; import java.util.util. java.util.enumeration; import javax.swing.jfilechooser; public class filesplitdemo {/*** 큰 파일의 절단 및 병합 실현. 지정된 숫자 (파일을 10 사본으로 절단) 또는 지정된 크기 (예 : 각 사본의 최대 수는 10m를 초과하지 않음)별로 잘라냅니다. 두 방법 모두 괜찮습니다. */public static void main (string [] args) {jfilechooser jfc = new jfilechooser (); swing에서 파일 선택 // 파일 선택 int result = jfc.showopendialog (null); // 디스플레이 프레임은 파일을 선택하는 데 사용됩니다 = null; // 파일을 선택하는 데 사용됩니다. jfileChooser.Approve_Option) {// 파일 선택 // 파일을 삭감 파일 = jfc.getSelectedFile (); // 사용자가 선택한 파일 dest = 새 파일 (file.getParent (), "splifile"); cutingfile (file, dest); // 2 merge (실행할 때 단지 삭감 된 파일 파일). file.getName (); mergedemo (dest, filename); // merge file}} catch (ioException e) {// todo auto auto-auto-auto-auto-auto-auto-auto-auttatic void mengedemo (파일 dest, string filename)는 ioexception {// 강도 보호 (!) {새 Runtimeexception ( "파일이 존재하지 않는다");} // 파일 배열을 사용하여 모든 파일을 내부로드합니다. file part [] = dest.listfiles (); // 추상 경로 이름의 배열을 반환하면이 경로 이름은이 추상 PathName으로 표시된 디렉토리의 파일을 나타냅니다. if (parth.length == 0) {새로운 runtimeexception ( "조각이 존재하지 않습니다");} // y 시퀀스 스트림을 사용하여 arraylist <fileInputStream> list = new ArrayList <fileInputStream> (); // for (int i = 0; i <partth.length; i ++) {// list.aD. 병합 된 파일은 (int i = 0; i <partth.length; i ++) {list.add (new FileInputStream (dest, filename+ (i+ 1)+ "part"))에 대한 무질서한 순서 //}입니다. collections.enumeration (목록); SequenceInputStream sq = new sequenceInputStream (en); // 새 파일에 쓰기 FileOutputStream fou = 새 파일 (dest, filename)); byte buf [] = new byte [1024]; sq.read (buf); int len = 0; while (len = sq.read (buf)) {fouf, 0,, 0, len);} fou.close (); sq.close ();} private static void cuttingfile (파일 소스, 파일 dest) {// cut try {fileInputStream fis = new FileInputStream (source); if (! dest.exists ()) {// 파일이 존재하는지 여부를 결정합니다. dest.mkdir ();} byte buf [] = new Byte [1024 * 1024]; // 1mfis.read (buf); int len = 0; int cout = 1; while ((len = fis.read (buf))! = -1) {// 파일을 사용하여 아웃 스트림을 사용하여 파일을 사용하여 새 파일 (새 파일) (새로운 파일). (cout ++)+"part")); fout.write (buf, 0, len); fout.close ();}} catch (filenotfoundException e) {// todo auto-auto-receanted catch blocke.printstacktrace ();} catch (ioexception e) {// in auto-getated blocke.printated re)}}} {).파일 절단 : 파일을 여러 조각으로 자르면 각 조각의 크기가 1m를 초과하지 않아야합니다. 함수를 더 확장 할 수 있습니다 : 파일 이름, 절단 전 길이, 절단 후 조각 수, 파일 이름 및 기타 정보는 첫 번째 조각에 작성하거나 구성 파일에이를 작성하여 속성을 사용 할 수 있습니다.
파일 병합 : 다음은 파일 개체의 이름과 병합 된 원본 파일의 이름이 알려져 있다는 간단한 가정입니다. 사실, 이것들은 완전히 살아있을 수 있습니다. 이 정보를 조각난 파일 또는 구성 파일에 저장하면 파일 선택 대화 상자를 사용하여 사용자의 선택을 읽을 수도 있습니다.
Java 알고리즘에 대한 자세한 내용은이 사이트에 관심이있는 독자가 주제를 볼 수 있습니다. "Java 파일 및 디렉토리 운영 기술 요약", "Java 데이터 구조 및 알고리즘에 대한 튜토리얼", "Java Operation Dom Node Skills 요약"및 "Java Cache 운영 기술 요약".
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.