Core Class Android

//package ru.kvolkov.myreader.utils;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import android.content.Context;
import android.util.Log;
class AssetsHelper {
  private static final String TAG = "AssetsHelper";
  private static final int BUFFER_SIZE = 65536;
  private Context m_context;
  /**
   * Represents a helper for work with assets.
   * 
   * @param context
   *            An application context.
   */
  public AssetsHelper(Context context) {
    m_context = context;
  }
  /**
   * Reads all text from asset with specified path.
   * 
   * @param assetPath
   *            A path to asset which should be read.
   * @return A string with asset content or empty string if asset is not
   *         exists.
   */
  public String readAllText(String assetPath) {
    InputStream stream = null;
    try {
      stream = m_context.getAssets().open(assetPath);
      return readAllText(stream);
    } catch (IOException e) {
      Log.e(TAG, "Error on asset reading.", e);
    } finally {
      closeStream(stream);
    }
    return "";
  }
  private static String readAllText(InputStream stream) throws IOException {
    Reader reader = new InputStreamReader(stream);
    final char[] buffer = new char[BUFFER_SIZE];
    StringBuilder result = new StringBuilder();
    int read;
    while (true) {
      read = reader.read(buffer, 0, BUFFER_SIZE);
      if (read > 0) {
        result.append(buffer, 0, read);
        continue;
      }
      return result.toString();
    }
  }
  private static void closeStream(InputStream stream) {
    if (stream != null) {
      try {
        stream.close();
      } catch (IOException e) {
        Log.e(TAG, "Error on asset reading.", e);
      }
    }
  }
}