Java FileOutputStream Write saveTo(String path, InputStream in)

Here you can find the source of saveTo(String path, InputStream in)

Description

Saves content read from input stream into a file.

License

Apache License

Parameter

Parameter Description
path path to file.
in input stream to read content from.

Declaration

public static void saveTo(String path, InputStream in)
        throws IOException 

Method Source Code

//package com.java2s;
/*//from  w w w  . ja va  2s . c  om
 Copyright 2009-2010 Igor Polevoy 

 Licensed under the Apache License, Version 2.0 (the "License"); 
 you may not use this file except in compliance with the License. 
 You may obtain a copy of the License at 

 http://www.apache.org/licenses/LICENSE-2.0 

 Unless required by applicable law or agreed to in writing, software 
 distributed under the License is distributed on an "AS IS" BASIS, 
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
 See the License for the specific language governing permissions and 
 limitations under the License. 
 */

import java.io.*;

public class Main {
    /**
     * Saves content read from input stream into a file.
     *
     * @param path path to file.
     * @param in  input stream to read content from.
     */
    public static void saveTo(String path, InputStream in)
            throws IOException {
        if (in == null)
            throw new IllegalArgumentException(
                    "input stream cannot be null");
        if (path == null)
            throw new IllegalArgumentException("path cannot be null");

        FileOutputStream out = new FileOutputStream(path);
        try {
            byte[] bytes = new byte[1024];
            for (int x = in.read(bytes); x != -1; x = in.read(bytes))
                out.write(bytes, 0, x);
        } finally {
            close(out);
        }
    }

    /**
     * Reads contents of the input stream fully and returns it as String. Sets UTF-8 encoding internally.
     *
     * @param in InputStream to read from.
     * @return contents of the input stream fully as String.
     * @throws IOException in case of IO error
     */
    public static String read(InputStream in) throws IOException {
        return read(in, "UTF-8");
    }

    /**
     * Reads contents of the input stream fully and returns it as String.
     *
     * @param in InputStream to read from.
     * @param charset name of supported charset to use
     * @return contents of the input stream fully as String.
     * @throws IOException in case of IO error
     */
    public static String read(InputStream in, String charset)
            throws IOException {
        if (in == null)
            throw new IllegalArgumentException(
                    "input stream cannot be null");

        InputStreamReader reader = new InputStreamReader(in, charset);
        char[] buffer = new char[1024];
        StringBuilder sb = new StringBuilder();

        for (int x = reader.read(buffer); x != -1; x = reader.read(buffer)) {
            sb.append(buffer, 0, x);
        }
        return sb.toString();
    }

    /**
     * Reads file into a byte array.
     *
     * @param file file to read.
     * @return content of file.
     * @throws java.io.IOException
     */
    public static byte[] read(File file) throws IOException {
        FileInputStream is = new FileInputStream(file);
        try {
            return bytes(is);
        } finally {
            close(is);
        }
    }

    public static void close(Closeable c) {
        try {
            if (c != null)
                c.close();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    /**
     * Reads contents of the input stream fully and returns it as byte array.
     *
     * @param in InputStream to read from.
     * @return contents of the input stream fully as byte array
     * @throws IOException in case of IO error
     */
    public static byte[] bytes(InputStream in) throws IOException {
        if (in == null)
            throw new IllegalArgumentException(
                    "input stream cannot be null");

        ByteArrayOutputStream bout = new ByteArrayOutputStream(1024);
        byte[] bytes = new byte[1024];

        for (int x = in.read(bytes); x != -1; x = in.read(bytes))
            bout.write(bytes, 0, x);

        return bout.toByteArray();
    }
}

Related

  1. saveTemp(final byte[] data, final String suffix)
  2. saveTempFile(String xmlSource, String fileName)
  3. saveTextContentInFile(String content, File file)
  4. saveTextToFile(String fileName, String content)
  5. saveTo(InputStream in, String fileName)
  6. saveTo(String path, InputStream in)
  7. saveToBinaryFile(File dest, byte[] data)
  8. saveToDisc(final InputStream fileInputStream, final String fileUploadPath)
  9. saveToDisk(InputStream is, String filename)