/ app / src / main / java / com / reandroid / archive / ByteInputSource.java
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  }