001/* 002 * Copyright (C) 2009 The Guava Authors 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 017package com.google.common.io; 018 019import java.io.DataOutput; 020import java.io.IOException; 021 022/** 023 * An extension of {@code DataOutput} for writing to in-memory byte arrays; its 024 * methods offer identical functionality but do not throw {@link IOException}. 025 * 026 * @author Jayaprabhakar Kadarkarai 027 * @since 1.0 028 */ 029public interface ByteArrayDataOutput extends DataOutput { 030 @Override void write(int b); 031 @Override void write(byte b[]); 032 @Override void write(byte b[], int off, int len); 033 @Override void writeBoolean(boolean v); 034 @Override void writeByte(int v); 035 @Override void writeShort(int v); 036 @Override void writeChar(int v); 037 @Override void writeInt(int v); 038 @Override void writeLong(long v); 039 @Override void writeFloat(float v); 040 @Override void writeDouble(double v); 041 @Override void writeChars(String s); 042 @Override void writeUTF(String s); 043 044 /** 045 * @deprecated This method is dangerous as it discards the high byte of 046 * every character. For UTF-8, use {@code write(s.getBytes(Charsets.UTF_8))}. 047 */ 048 @Deprecated @Override void writeBytes(String s); 049 050 /** 051 * Returns the contents that have been written to this instance, 052 * as a byte array. 053 */ 054 byte[] toByteArray(); 055}