1bda3441225e0607b5ced8b538123fd7c7a417910chrismair/* 2bda3441225e0607b5ced8b538123fd7c7a417910chrismair * Copyright 2008 the original author or authors. 3bda3441225e0607b5ced8b538123fd7c7a417910chrismair * 4bda3441225e0607b5ced8b538123fd7c7a417910chrismair * Licensed under the Apache License, Version 2.0 (the "License"); 5bda3441225e0607b5ced8b538123fd7c7a417910chrismair * you may not use this file except in compliance with the License. 6bda3441225e0607b5ced8b538123fd7c7a417910chrismair * You may obtain a copy of the License at 7bda3441225e0607b5ced8b538123fd7c7a417910chrismair * 8bda3441225e0607b5ced8b538123fd7c7a417910chrismair * http://www.apache.org/licenses/LICENSE-2.0 9bda3441225e0607b5ced8b538123fd7c7a417910chrismair * 10bda3441225e0607b5ced8b538123fd7c7a417910chrismair * Unless required by applicable law or agreed to in writing, software 11bda3441225e0607b5ced8b538123fd7c7a417910chrismair * distributed under the License is distributed on an "AS IS" BASIS, 12bda3441225e0607b5ced8b538123fd7c7a417910chrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13bda3441225e0607b5ced8b538123fd7c7a417910chrismair * See the License for the specific language governing permissions and 14bda3441225e0607b5ced8b538123fd7c7a417910chrismair * limitations under the License. 15bda3441225e0607b5ced8b538123fd7c7a417910chrismair */ 16bda3441225e0607b5ced8b538123fd7c7a417910chrismairpackage org.mockftpserver.core.util; 17bda3441225e0607b5ced8b538123fd7c7a417910chrismair 18bda3441225e0607b5ced8b538123fd7c7a417910chrismairimport java.io.ByteArrayOutputStream; 19bda3441225e0607b5ced8b538123fd7c7a417910chrismairimport java.io.IOException; 20bda3441225e0607b5ced8b538123fd7c7a417910chrismairimport java.io.InputStream; 21bda3441225e0607b5ced8b538123fd7c7a417910chrismair 22bda3441225e0607b5ced8b538123fd7c7a417910chrismair/** 23bda3441225e0607b5ced8b538123fd7c7a417910chrismair * Contains static I/O-related utility methods. 24bda3441225e0607b5ced8b538123fd7c7a417910chrismair * 25bda3441225e0607b5ced8b538123fd7c7a417910chrismair * @author Chris Mair 26bda3441225e0607b5ced8b538123fd7c7a417910chrismair * @version $Revision$ - $Date$ 27bda3441225e0607b5ced8b538123fd7c7a417910chrismair */ 28bda3441225e0607b5ced8b538123fd7c7a417910chrismairpublic class IoUtil { 29bda3441225e0607b5ced8b538123fd7c7a417910chrismair 30bda3441225e0607b5ced8b538123fd7c7a417910chrismair /** 31bda3441225e0607b5ced8b538123fd7c7a417910chrismair * Read the contents of the InputStream and return as a byte[]. 32bda3441225e0607b5ced8b538123fd7c7a417910chrismair * 33bda3441225e0607b5ced8b538123fd7c7a417910chrismair * @param input - the InputStream to read 34bda3441225e0607b5ced8b538123fd7c7a417910chrismair * @return the contents of the InputStream as a byte[] 35bda3441225e0607b5ced8b538123fd7c7a417910chrismair * @throws AssertFailedException - if the InputStream is null 36bda3441225e0607b5ced8b538123fd7c7a417910chrismair * @throws java.io.IOException - if an error occurs reading the bytes 37bda3441225e0607b5ced8b538123fd7c7a417910chrismair */ 38bda3441225e0607b5ced8b538123fd7c7a417910chrismair public static byte[] readBytes(InputStream input) throws IOException { 39bda3441225e0607b5ced8b538123fd7c7a417910chrismair Assert.notNull(input, "input"); 40bda3441225e0607b5ced8b538123fd7c7a417910chrismair ByteArrayOutputStream outBytes = new ByteArrayOutputStream(); 41bda3441225e0607b5ced8b538123fd7c7a417910chrismair 42bda3441225e0607b5ced8b538123fd7c7a417910chrismair try { 43bda3441225e0607b5ced8b538123fd7c7a417910chrismair while (true) { 44bda3441225e0607b5ced8b538123fd7c7a417910chrismair int b = input.read(); 45bda3441225e0607b5ced8b538123fd7c7a417910chrismair if (b == -1) { 46bda3441225e0607b5ced8b538123fd7c7a417910chrismair break; 47bda3441225e0607b5ced8b538123fd7c7a417910chrismair } 48bda3441225e0607b5ced8b538123fd7c7a417910chrismair outBytes.write(b); 49bda3441225e0607b5ced8b538123fd7c7a417910chrismair } 50bda3441225e0607b5ced8b538123fd7c7a417910chrismair } 51bda3441225e0607b5ced8b538123fd7c7a417910chrismair finally { 52bda3441225e0607b5ced8b538123fd7c7a417910chrismair input.close(); 53bda3441225e0607b5ced8b538123fd7c7a417910chrismair } 54bda3441225e0607b5ced8b538123fd7c7a417910chrismair return outBytes.toByteArray(); 55bda3441225e0607b5ced8b538123fd7c7a417910chrismair } 56bda3441225e0607b5ced8b538123fd7c7a417910chrismair 57bda3441225e0607b5ced8b538123fd7c7a417910chrismair /** 58bda3441225e0607b5ced8b538123fd7c7a417910chrismair * Private constructor to prevent instantiation. All members are static. 59bda3441225e0607b5ced8b538123fd7c7a417910chrismair */ 60bda3441225e0607b5ced8b538123fd7c7a417910chrismair private IoUtil() { 61bda3441225e0607b5ced8b538123fd7c7a417910chrismair } 62bda3441225e0607b5ced8b538123fd7c7a417910chrismair 63bda3441225e0607b5ced8b538123fd7c7a417910chrismair} 64