Как не копировать контент, который уже существует в файле?

Я формулировал этот вопрос с целью помощи в этой теме:

Я существую стараюсь создавать процесс скопированный, но не завершаю, а именно, что только обновил контент файла с изменениями, реализованными в другом.

  • Я объясняю:

Я создал два файла txt один с именем A и другой с именем B, у обоих файлов есть те же данные, до тех пор, пока моя программа не изменит данные о файле A реализовывая изменения в написании (не удаляя контент и когда пишут другой, а только добавляя более сдержанный), и как только реализовали эти изменения я хочу, чтобы они стали отвечающими совремнным требованиям или добавили только изменения, которые реализовали не весь контент снова, только, который копирует то, чего у него нет или ему не хватает.

Мой настоящий код:

Мой код оказался очень полезным во время копирования данных о вводе под файл, делая превращение InputStream File, жалостно он не реализует эту операцию, в которой я нуждаюсь

Мой код:

    public boolean creaArchivo2(String ruta, InputStream is)
        throws IOException {

        final int CHUNK_SIZE = 1024 * 4;
        OutputStream os = new BufferedOutputStream(new FileOutputStream(new File(ruta)));
        byte[] chunk = new byte[CHUNK_SIZE];
        int bytesLeidos = 0;

        while ( (bytesLeidos = is.read(chunk)) > 0) {

            os.write(chunk, 0, bytesLeidos);
        }
        os.close();

        boolean verdadero=true;
        return verdadero;

    }

Если они знают, как им это удается сообщить это мне пожалуйста Спасибо.

1
задан 22.01.2017, 13:08
0 ответов

Если только ты добавляешь контент к файлам, ты можешь делать следующее:

Добавив контент к файлу A, ты получаешь размер size файла B:

File archivoB = new File(ruta);
long length = (File) archivoB.length();

Потом ты создаешь один FileInputStream файла A, и ты ищешь положение совокупных данных, используя fis.skip (length), и это перемещаешь в твой измененный метод, происходя trueдля append (это ты идет открывать файл B, чтобы добавлять данные в конце файла, как документируемый в Java API):

public boolean creaArchivo2(String ruta, InputStream is, boolean append)
    throws IOException {

    final int CHUNK_SIZE = 1024 * 4;
    OutputStream os = new BufferedOutputStream(new FileOutputStream(new File(ruta, append)));
    byte[] chunk = new byte[CHUNK_SIZE];
    int bytesLeidos = 0;

    while ( (bytesLeidos = is.read(chunk)) > 0) {

        os.write(chunk, 0, bytesLeidos);
    }
    os.close();
    return true;

} 
1
ответ дан 03.12.2019, 17:35

Теги

Похожие вопросы