ByteInputSource.java
1 /* 2 * Copyright (C) 2022 github.com/REAndroid 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package com.reandroid.archive; 17 18 import com.reandroid.common.BytesInputStream; 19 20 import java.io.IOException; 21 import java.io.InputStream; 22 import java.io.OutputStream; 23 24 public class ByteInputSource extends InputSource { 25 private byte[] array; 26 public ByteInputSource(byte[] array, String name) { 27 super(name); 28 this.array = array; 29 } 30 @Override 31 public long write(OutputStream outputStream) throws IOException { 32 byte[] bytes = getBytes(); 33 outputStream.write(bytes); 34 return bytes.length; 35 } 36 @Override 37 public InputStream openStream() throws IOException { 38 return new BytesInputStream(getBytes()); 39 } 40 public byte[] getBytes() { 41 return array; 42 } 43 @Override 44 public void disposeInputSource(){ 45 array = new byte[0]; 46 } 47 }