Хотя Java предоставляет класс операции ввода -вывода, который может обрабатывать файлы. Но нет никакого способа копировать файлы. Копирование файлов является важной операцией, когда ваша программа должна иметь дело со многими связанными файлами. Тем не менее, есть несколько способов скопировать файлы Java, и ниже приведены самые популярные методы.
1. Скопируйте с помощью FileStreams
Это самый классический способ скопировать содержимое одного файла в другой. Используйте FileInputStream для чтения байтов файла A и используйте FileOutputStream для записи в файл B. Это код для первого метода:
private static void copyFileusingFileStreams (источник файла, файл dest) бросает ioException {inputStream input = null; OutputStream output = null; try {input = new FileInputStream (Source); output = new FileOutputStream (dest); byte [] buf = new Byte [1024]; int bytesread; while ((bytesread = input.read (buf))> 0) {output.write (buf, 0, bytesread); }} наконец {input.close (); output.close (); }} Как вы можете видеть, мы выполняем несколько операций чтения и записи, чтобы попробовать данные, так что это должен быть неэффективным способом, и следующий метод, который мы увидим по -новому.
2. Скопируйте с помощью FileChannel
Java Nio включает в себя метод Transferfrom, который следует копировать быстрее, чем потоки файлов на основе документа. Вот код для второго метода:
private static void copyFileusingFileChannels (источник файла, файл dest) бросает ioException {fileChannel InputChannel = null; FileChannel outputChannel = null; try {inputChannel = new FileInputStream (Source) .getChannel (); outputChannel = new FileOutputStream (dest) .getChannel (); outputChannel.transferfrom (inputChannel, 0, inputChannel.size ()); } наконец {inputChannel.close (); outputChannel.close (); }}3. Скопируйте с помощью Commons io
Apache Commons IO предоставляет метод копирования файла в своем классе FileUtils, который можно использовать для копирования одного файла в другой. Это очень удобно при использовании класса Apache Commons FileUtils, когда вы уже используете свой проект. По сути, в этом классе используются внутренние внутренние внутренности Java Nio FileChannel. Это код для третьего метода:
private static void copyFileusingApacheCommonsio (источник файла, файл dest) бросает ioException {fileUtils.copyfile (source, dest); }4. Скопируйте, используя класс файлов Java7
Если у вас есть некоторый опыт работы в Java 7, вы можете знать, что вы можете использовать метод копирования для копирования из одного файла в другой. Это код для четвертого метода:
private static void copyfileusingjava7files (источник файла, файл dest) бросает ioException {files.copy (source.topath (), dest.topath ()); }Давайте посмотрим на код реализации для копирования файла Java в другой каталог. Конкретный код заключается в следующем:
package com.util;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;public class TestHtml {/** * Copy a single file* @param oldPath String Original file path such as: c:/fqf.txt * @param newPath String Path after copying is: f: /fqf.txt * @return boolean */ public void copyFile (String oldPath, String newpath) {try {int bytesum = 0; int byteread = 0; File oldfile = новый файл (OldPath); if (oldfile.exists ()) {// inputstream instream = new FileInputStream (OldPath); // Читать в исходном файле FileOutputStream fs = new FileOutputStream (newPath); Byte [] buffer = новый байт [1444]; int длина; while ((byteread = instream.read (buffer))! = -1) {bytesum += byteread; // bytes size sistem.out.println (Bytesum); fs.write (буфер, 0, Byteread); } instream.close (); }} catch (Exception e) {System.out.println ("Ошибка копирование одного файла"); e.printstacktrace ();}}/** * Скопируйте весь содержимое папки * @param stordpath String Path:/fqf/fqf * @param newpath String Path после копирования: f:/fqf/ff * @return boolean */public void copyfolder (String oldpath, String newpath) {try a (newpate) (newpath) (newpath) (newpath) (newpath). // Если папка не существует, создайте новый файл папки A = новый файл (OldPath); String [] file = a.list (); File temp = null; for (int i = 0; i <file.length; i ++) {if (oldpath.endswith (file.separator)) {temp = new File (oldpath+file [i]); } else {temp = новый файл (oldpath+file.separator+file [i]); } if (temp.isfile ()) {fileInputStream input = new FileInputStream (temp); FileOutputStream output = new FileOutputStream (newPath + "/" + (temp.getName ()). ToString ()); байт [] b = новый байт [1024 * 5]; int len; while ((len = input.read (b))! = -1) {output.write (b, 0, len); } output.flush (); output.close (); input.close (); } if (temp.isdirectory ()) {// Если это подпапающий копирузер (OldPath+"/"+file [i], newpath+"/"+file [i]); }}} catch (Exception e) {System.out.println ("Ошибка копирование всей операции содержимого папки"); e.printstacktrace ();}} public static void main (string [] args) бросает исключение {// // Это ваш исходный файл, который сам существует // file передфил = новый файл ("c: /susers/administrator/desktop/untitled-2.html") Afterfile = new File ("c: /users/administrator/desktop/jiekou0/untitled-2.html"); ///// // Определить поток ввода файла, чтобы прочитать файл перед файлом // fileInputStream FIS = New FileInputStream (передфиль); //////////////////////////10 FileOutputStream (ATHERFILE); ///// // Область кеша файла // byte [] b = новый байт [1024]; // // Читать информацию по потоку файла в области кэша файла. Если результат чтения не является -1, это означает, что файл не был прочитал, и он был прочитал OldPath = "c: /users/administrator/desktop/untitled-2.html"; string newpath = "c:/users/administrator/desktop/jiekou0/untitled-2.html"; testhtml t = nevalthtml (); t.copyfile (oldpath, newpath);Суммировать
Выше приведено 4 способа копирования файлов в Java и пример кода копирования файлов в другой каталог, представленный редактором. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!