В этой статье описываются операции Java для реализации больших файлов. Поделитесь этим для вашей ссылки, следующим образом:
Здесь мы понимаем резку и слияние больших файлов.
Вырежьте указанным номером (например, разрезание файла на 10 экземпляров) или разрезание указанным размером (например, максимальное количество каждой копии не превышает 10 м). Оба метода в порядке.
Здесь я просто пишу для вас простой код:
Пакет io2; импорт java.io.file; импорт java.io.fileinputstream; импорт java.io.filenotfoundexception; import java.io.fileOutputStream; импорт java.io.ioexception; импорт java.io.cequenceInputStream; импорт java.Util.Arraylist; импорт. java.util.enumeration; import javax.swing.jfilechooser; открытый класс filesplitdemo {/*** Реализуйте разрезание и слияние больших файлов. Вырежьте указанным номером (например, разрезание файла на 10 экземпляров) или разрезание указанным размером (например, максимальное количество каждой копии не превышает 10 м). Оба метода в порядке. */public static void main (string [] args) {jfilechooser jfc = new jfilechooser (); // select file в swing // select file int result = jfc.showopendialog (null); // отображение кадра используется для выбора файла файла = null; // файл cut file dest = nul Jfilechooser.approve_option) {// select file // cut file file = jfc.getSelectedFile (); // Пользователь выбрал файл dest = new File (file.getParent (), "splifile"); Имя файла); // merge file}} catch (ioexception e) {// todo с генерируемым лоткой Blocke.printstackTrace ();}} частная статическая void mergedemo (файл dest, строковый файл) бросает ioexception {// rotectorse (используется file-объект, чтобы открыть File), если (! dest.exists (). существует ");} // Используйте массив файлов для загрузки всех файлов внутри. File part [] = dest.listfiles (); // возвращать массив абстрактных путей, эти имена пути представляют файлы в каталоге, представленном этим абстрактным путем. if (parth.length == 0) {бросить новое runtimeexception («фрагмент не существует»);} // y Использовать потоки последовательностей, чтобы слияние arraylist <fileinputstream> list = new Arraylist <fileinputStream> (); // for (int i = 0; i <partth.length; i ++) {// list.addddddddd. (new fileinput.; Не так, объединенные файлы находятся в беспорядочном порядке //} для (int i = 0; i <partth.length; i ++) {list.add (new FileInputStream (новый файл (dest, filename+ (i+ 1)+ "part"))); // Технология сокета, порядок файлов должен быть добавлен один и тот же файл wife} //)); Collections.Enumeration (список); SequenceInputStream sq = new SequenceInputStream (en); // Записать в новый файл fileOutputStream fou = new FileOutputStream (новый файл (dest, filename)); byte buf [] = new byte [1024]; sq.read (buf); int len = 0; while (len = sq.read (buf)> 0). len);} fou.close (); sq.close ();} private static void Rutgile (источник файла, файл 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; while ((len = fis.read (buf))! = -1) {// Использование потока, чтобы вырезать файл fileOutputeReam fout = new fileOutput (new) (newSecteMAME (newsemAme (newsemalme (new) (newsemAme (newsemale) (newsemale) (new stourtame (new). (cout ++)+"part")); fout.write (buf, 0, len); fout.close ();}} catch (filenotfoundexception e) {// todo Auto Generated Catch Blocke.printstacktrace ();} Catch (ioxexception e) {// todo auto-Generated Catch blocke.printstacktrace ();}}}Резка файла: разрезайте файл на несколько частей, каждый кусок фрагмента не должен превышать 1 м в размере. Вы можете дополнительно расширить функцию: имя файла, длина перед резкой, количество частей после резки, имя файла и другая информация может быть записано в первую часть или использовать свойства для записи их в файл конфигурации.
Merge File: Вот простое предположение, что имя объекта файла и исходный файл, которые объединены, известны. На самом деле, они могут быть полностью живы. Если вы сохраните эту информацию в фрагментированном файле или файле конфигурации, вы также можете использовать диалоговое окно «Выбор файла», чтобы прочитать выбор пользователя.
Для получения дополнительной информации об алгоритмах Java читатели, которые интересуются этим сайтом, могут просмотреть темы: «Сводка файлов Java и навыки операции по каталогам», «Учебное пособие по структурам данных и алгоритмам Java», «Сводка операции Java Operation Dom Node» и «Сводка операции Java Cache»
Я надеюсь, что эта статья будет полезна для всех Java Programming.