001package io.ebean.util;
002
003import java.io.BufferedReader;
004import java.io.BufferedWriter;
005import java.io.File;
006import java.io.FileInputStream;
007import java.io.FileNotFoundException;
008import java.io.FileOutputStream;
009import java.io.InputStream;
010import java.io.InputStreamReader;
011import java.io.OutputStream;
012import java.io.OutputStreamWriter;
013import java.nio.charset.StandardCharsets;
014
015/**
016 * Utilities for IO. It uses UTF-8 as encoding when reading/writing and uses
017 * buffered IO for better performance.
018 */
019public class IOUtils {
020
021  /**
022   * Read from stream as UTF-8.
023   */
024  public static BufferedReader newReader(InputStream is) {
025    return new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8));
026  }
027
028  /**
029   * Read from file as UTF-8.
030   */
031  public static BufferedReader newReader(File file) throws FileNotFoundException {
032    return newReader(new FileInputStream(file));
033  }
034
035  /**
036   * Write to stream as UTF-8
037   */
038  public static BufferedWriter newWriter(OutputStream os) {
039    return new BufferedWriter(new OutputStreamWriter(os, StandardCharsets.UTF_8));
040  }
041
042  /**
043   * Write to file as UTF-8
044   */
045  public static BufferedWriter newWriter(File file) throws FileNotFoundException {
046    return newWriter(new FileOutputStream(file));
047  }
048}