| /* |
| * Copyright (c) 2011 Google Inc. |
| * |
| * All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse |
| * Public License v1.0 which accompanies this distribution, and is available at |
| * |
| * http://www.eclipse.org/legal/epl-v10.html |
| */ |
| package com.google.eclipse.protobuf.ui.editor.model; |
| |
| import static com.google.common.io.Closeables.closeQuietly; |
| import static com.google.eclipse.protobuf.util.Encodings.UTF_8; |
| |
| import java.io.*; |
| |
| import com.google.inject.Singleton; |
| |
| /** |
| * @author alruiz@google.com (Alex Ruiz) |
| */ |
| @Singleton class ContentReader { |
| private static final int DEFAULT_FILE_SIZE = 15 * 1024; |
| |
| String contentsOf(InputStream inputStream) throws IOException { |
| Reader reader = null; |
| try { |
| reader = new BufferedReader(readerFor(inputStream), DEFAULT_FILE_SIZE); |
| StringBuilder contents = new StringBuilder(DEFAULT_FILE_SIZE); |
| char[] buffer = new char[2048]; |
| int character = reader.read(buffer); |
| while (character > 0) { |
| contents.append(buffer, 0, character); |
| character = reader.read(buffer); |
| } |
| return contents.toString(); |
| } finally { |
| closeQuietly(reader); |
| } |
| } |
| |
| private Reader readerFor(InputStream inputStream) throws IOException { |
| return new InputStreamReader(inputStream, UTF_8); |
| } |
| } |