You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Aymon de Broglie (Jira)" <ji...@apache.org> on 2020/10/28 10:58:00 UTC

[jira] [Updated] (IO-691) IOUtils copyLarge gives incorrect result with buffered stream and zip file

     [ https://issues.apache.org/jira/browse/IO-691?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Aymon de Broglie updated IO-691:
--------------------------------
    Description: 
I run the following code 

 
{code:java}
import org.apache.commons.io.IOUtils;

import java.io.*;

class Scratch {

    public static void main(String[] args) throws IOException {
        String oldFilePath = "your_path/test.zip";
        String newFilePath = "your_path/new_zip.zip";
        InputStream inputStream = new FileInputStream(oldFilePath);

        File file = new File(newFilePath);
        file.createNewFile();

        IOUtils.copyLarge(inputStream, new BufferedOutputStream(new FileOutputStream(file)));
    }
}

{code}

I then try to open the new_zip.zip and it is impossible to open, the file is not well copied

However if I remove the BufferedOutputStream as below, the copy works correctly 

 {code:java}
import org.apache.commons.io.IOUtils;

import java.io.*;

class Scratch {

    public static void main(String[] args) throws IOException {
        String oldFilePath = "your_path/test.zip";
        String newFilePath = "your_path/new_zip.zip";
        InputStream inputStream = new FileInputStream(oldFilePath);

        File file = new File(newFilePath);
        file.createNewFile();

        IOUtils.copyLarge(inputStream, new FileOutputStream(file));
    }
}

{code}

  was:
I run the following code 

 
{code:java}
import org.apache.commons.io.IOUtils;

import java.io.*;

class Scratch {

    public static void main(String[] args) throws IOException {
        String oldFilePath = "your_path/test.zip";
        String newFilePath = "your_path/new_zip.zip";
        InputStream inputStream = new FileInputStream(oldFilePath);

        File file = new File(newFilePath);
        file.createNewFile();

        IOUtils.copyLarge(inputStream, new BufferedOutputStream(new FileOutputStream(file)));
    }
}

{code}

I then try to open the new_zip.zip and it is impossible to open, the file is not well copied 


> IOUtils copyLarge gives incorrect result with buffered stream and zip file
> --------------------------------------------------------------------------
>
>                 Key: IO-691
>                 URL: https://issues.apache.org/jira/browse/IO-691
>             Project: Commons IO
>          Issue Type: Bug
>          Components: Utilities
>    Affects Versions: 2.8.0
>         Environment: Mac OS Catalina v 10.15.7 
> Java 11 
> MacBook Pro (16-inch, 2019)
>            Reporter: Aymon de Broglie
>            Priority: Minor
>         Attachments: test.zip
>
>
> I run the following code 
>  
> {code:java}
> import org.apache.commons.io.IOUtils;
> import java.io.*;
> class Scratch {
>     public static void main(String[] args) throws IOException {
>         String oldFilePath = "your_path/test.zip";
>         String newFilePath = "your_path/new_zip.zip";
>         InputStream inputStream = new FileInputStream(oldFilePath);
>         File file = new File(newFilePath);
>         file.createNewFile();
>         IOUtils.copyLarge(inputStream, new BufferedOutputStream(new FileOutputStream(file)));
>     }
> }
> {code}
> I then try to open the new_zip.zip and it is impossible to open, the file is not well copied
> However if I remove the BufferedOutputStream as below, the copy works correctly 
>  {code:java}
> import org.apache.commons.io.IOUtils;
> import java.io.*;
> class Scratch {
>     public static void main(String[] args) throws IOException {
>         String oldFilePath = "your_path/test.zip";
>         String newFilePath = "your_path/new_zip.zip";
>         InputStream inputStream = new FileInputStream(oldFilePath);
>         File file = new File(newFilePath);
>         file.createNewFile();
>         IOUtils.copyLarge(inputStream, new FileOutputStream(file));
>     }
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)