Копирование файла в Java

Из коробки Java не предоставляет программисту способа копирования файлов. Хотя технически этот процесс достаточно прост: нам достаточно открыть файл-источник, преобразовать его содержимое в байтовый поток, представленный объектом типа FileInputStream, и перенаправить его в выходной байтовый поток, представленный объектом типа FileOutputStream, связанный с файлом — назначением.

Вызывает вопросы тот факт, что такой востребованный метод не был включен, например, в класс File.

package ru.j4web.examples.java.io;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.logging.Level;
import java.util.logging.Logger;

public class CopyFileExample {

    private static final String FILE_A = "c:\Projects\J4Web.Ru\Src\"
            + "JavaIO\CopyFileExample\fileA.odt";
    private static final String FILE_B = "c:\Projects\J4Web.Ru\Src\"
            + "JavaIO\CopyFileExample\fileB.odt";
    private static final Integer BUFFER_SIZE = 1024;

    public static void main(String[] args) {
        final File fileA = new File(FILE_A);
        final File fileB = new File(FILE_B);

        InputStream inStream = null;
        OutputStream outStream = null;
        try {
            inStream = new FileInputStream(fileA);
            outStream = new FileOutputStream(fileB);

            byte[] buffer = new byte[BUFFER_SIZE];
            int bytesRead;
            
            while ((bytesRead = inStream.read(buffer)) > 0) {
                outStream.write(buffer, 0, bytesRead);
            }
            
            inStream.close();
            outStream.close();
        } catch (IOException ex) {
            Logger.getLogger(CopyFileExample.class.getName())
                    .log(Level.SEVERE, null, ex);
        }
    }
}

Полезная информация

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Оставить комментарий

Ваш email нигде не будет показанОбязательные для заполнения поля помечены *

*