Dieser Artikel beschreibt die Schnitt- und Verschmelzungsvorgänge von Java, um große Dateien zu implementieren. Teilen Sie es für Ihre Referenz wie folgt weiter:
Hier erkennen wir das Schneiden und Verschmelzen großer Dateien.
Schnitt durch die angegebene Zahl (z. B. das Schneiden einer Datei in 10 Kopien) oder durch die angegebene Größe (z. B. die maximale Anzahl jeder Kopie 10 m) geschnitten). Beide Methoden sind in Ordnung.
Hier schreibe ich nur einen einfachen Code für Sie:
Paket IO2; import Java.io.file; Import Java.io.fileinputStream; Import Java.io.FilenotFoundException; Import Java.io.FileOutputStream; Import Java.io.ioxception; importieren Java.io. java.util.enumeration; import Javax.swing.jfilechooser; öffentliche Klasse filesplitdemo {/*** Erkennen Sie das Schneiden und Verschmelzen großer Dateien. Schnitt durch die angegebene Zahl (z. B. das Schneiden einer Datei in 10 Kopien) oder durch die angegebene Größe (z. B. die maximale Anzahl jeder Kopie 10 m) geschnitten). Beide Methoden sind in Ordnung. */public static void main (String [] args) {jFilechooser jfc = new JFilechooSer (); // Datei in Swing auswählen // Datei int result = jfc.showopendialog (null); // Anzeige Frame wird verwendet, um Dateidatei zu wählen. JFilechooser.ubrove_option) {// Datei auswählen // Datei cut File = jfc.getSelectedFile (); // Benutzer ausgewählte Datei dest = new Datei (Datei.getParent (), "splifile"); Cutingfile (Datei, Destion); // Schnittmethode // 2 Merge (Wenn Sie die Datei, die nur geschnitten wurden), mergen die Dateien, die nur geschnitten wurden, die Datei, die nur geschnitten wurden. file.getName();mergeDemo(dest, fileName);// Merge file}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}private static void mergeDemo(File dest, String fileName)throws IOException {// Robustness protection (using File object to open the channel) if (! dest.exists ()) {neue runTimeexception werfen ("Datei nicht existiert");} // Verwenden Sie ein Dateiarray, um alle Dateien in sich zu laden. Dateipart [] = dest.listfiles (); // geben ein Array von abstrakten Pathnames zurück, diese Pfadnamen repräsentieren Dateien im Verzeichnis, das durch diesen abstrakten Pfadnamen dargestellt wird. if (parth.length == 0) {neue runTimeexception ("Fragment nicht existiert");} // y Sequenzströme verwenden, um ArrayList <FileInputStream> list = new ArrayList <FileInputStream> (); // für (int i = 0; i <parth.Length; i+) {// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //). Nicht der Fall, die fusionierten Dateien sind in ungeordneter Reihenfolge //} für (int i = 0; i <parth.length; i ++) {list.Add (neuer FileInputStream (neue Datei (dest, Dateiname+ (i+ 1)+ "Teil")); // Socketing -Technologie, die Reihenfolge der Dateien zugefügt. Sammelns.Enumeration (Liste); SequenceInputStream SQ = New SequenceInputStream (EN); // Schreiben Sie in den neuen DateidateiOutputStream fou = new FileOutputStream (neue Datei (dest, fileName); byte buf [] = new Byte [1024]; len);} fou.close (); dest.mkdir ();} Byte buf [] = new Byte [1024 * 1024]; // 1mfis.read (buf); int len = 0; int cout = 1; while ((len = fis.read (buf)! (Cout ++)+"Teil")); blocke.printstacktrace ();}}}Dateischneidung: Schneiden Sie eine Datei in mehrere Teile, jedes Fragment sollte 1 m nicht überschreiten. Sie können die Funktion weiter erweitern: Der Dateiname, die Länge vor dem Schneiden, die Anzahl der Teile nach dem Schneiden, den Dateinamen und andere Informationen können in das erste Stück geschrieben oder Eigenschaften zum Schreiben dieser Konfigurationsdatei verwendet werden.
Dateium "Merge: Hier ist eine einfache Annahme, dass der Name des Dateiobjekts und die originale Datei, die zusammengeführt werden, bekannt ist. Tatsächlich können diese völlig lebendig sein. Wenn Sie diese Informationen in einer fragmentierten Datei- oder Konfigurationsdatei speichern, können Sie auch das Dialogfeld "Dateiauswahl" verwenden, um die Wahl des Benutzers zu lesen.
Für weitere Informationen zu Java -Algorithmen können Leser, die an dieser Website interessiert sind, die Themen "Zusammenfassung von Java -Dateien und Verzeichnisbetriebskenntnissen", "Tutorial über Java -Datenstrukturen und Algorithmen", "Zusammenfassung der Java Operation Dom Node Skills" und "Zusammenfassung der Java -Cache -Fähigkeiten" anzeigen "
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.