Search code examples
javaamazon-s3newlinebytearrayoutputstreambytearrayinputstream

ByteArrayOutputStream/InputStream losing newline characters on S3 Import


I have the following code (pseudo code-ish)...

ByteArrayOutputStream output = new ByteArrayOutputStream();
output.write("something\n".getBytes());
output.write("something\n".getBytes());

ByteArrayOutputStream input = new ByteArrayInputStream(output.getBytes());
s3.putStream(input);

Then when I get the file from s3 it looks like this: somethingsomething.

The newlines are gone!! I can't figure out why that is happening and internet searches have not been helpful. Does anyone have any ideas?


Solution

  • It is common problem with *NIX vs Windows files.

    Try : "\r\n" instead of "\n"

    ByteArrayOutputStream output = new ByteArrayOutputStream();
    output.write("something\r\n"".getBytes());
    output.write("something\r\n"".getBytes());
    
    ByteArrayOutputStream input = new ByteArrayInputStream(output.getBytes());
    s3.putStream(input);