com.freiheit.fuava.simplebatch.util.IOStreamUtils.java Source code

Java tutorial

Introduction

Here is the source code for com.freiheit.fuava.simplebatch.util.IOStreamUtils.java

Source

/**
 * Copyright 2015 freiheit.com technologies gmbh
 *
 * 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.
 */
package com.freiheit.fuava.simplebatch.util;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import com.freiheit.fuava.simplebatch.exceptions.FetchFailedException;
import com.google.common.base.Charsets;
import com.google.common.io.CharStreams;

/**
 * Utility functions for iostream handling within the fuava simplebatch project.
 * 
 * @author klas
 *
 */
public final class IOStreamUtils {

    private IOStreamUtils() {
        // static util class constructor
    }

    /**
     * Read and close the given stream, returning the string. Note that the
     * stream is assumed to be UTF-8 encoded.
     * 
     */
    public static String consumeAsString(final InputStream istream) throws FetchFailedException {
        try {
            try (InputStream stream = istream) {
                return CharStreams.toString(new InputStreamReader(stream, Charsets.UTF_8));
            }
        } catch (final IOException e) {
            throw new FetchFailedException(e);
        }
    }
}