From b5c92c777a405a36cde52c40c4d23b17a789aa2e Mon Sep 17 00:00:00 2001 From: REAndroid Date: Mon, 23 Jan 2023 07:17:51 -0500 Subject: [PATCH] read header of chunk quickly --- .../reandroid/arsc/header/HeaderBlock.java | 12 ---------- .../com/reandroid/arsc/header/InfoHeader.java | 24 +++++++++++++++++++ .../com/reandroid/arsc/io/BlockReader.java | 8 +++---- 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/reandroid/arsc/header/HeaderBlock.java b/src/main/java/com/reandroid/arsc/header/HeaderBlock.java index 42a6cea..b088bd7 100755 --- a/src/main/java/com/reandroid/arsc/header/HeaderBlock.java +++ b/src/main/java/com/reandroid/arsc/header/HeaderBlock.java @@ -225,18 +225,6 @@ import java.util.List; return builder.toString(); } - public static HeaderBlock readHeaderBlock(File file) throws IOException{ - InputStream inputStream = new FileInputStream(file); - HeaderBlock headerBlock = readHeaderBlock(inputStream); - inputStream.close(); - return headerBlock; - } - public static HeaderBlock readHeaderBlock(InputStream inputStream) throws IOException { - HeaderBlock headerBlock=new HeaderBlock(ChunkType.NULL.ID); - headerBlock.readBytes(inputStream); - return headerBlock; - } - public interface HeaderLoaded{ void onChunkTypeLoaded(short type); void onHeaderSizeLoaded(int headerSize); diff --git a/src/main/java/com/reandroid/arsc/header/InfoHeader.java b/src/main/java/com/reandroid/arsc/header/InfoHeader.java index b6eb928..53fe7f8 100644 --- a/src/main/java/com/reandroid/arsc/header/InfoHeader.java +++ b/src/main/java/com/reandroid/arsc/header/InfoHeader.java @@ -15,8 +15,14 @@ */ package com.reandroid.arsc.header; + import com.reandroid.arsc.io.BlockReader; import com.reandroid.arsc.item.ByteArray; + import java.io.File; + import java.io.FileInputStream; + import java.io.IOException; + import java.io.InputStream; + public class InfoHeader extends HeaderBlock{ public InfoHeader(short type) { super(type); @@ -31,4 +37,22 @@ public int countBytes() { return 8; } + + + public static InfoHeader readHeaderBlock(File file) throws IOException { + InputStream inputStream = new FileInputStream(file); + InfoHeader infoHeader = readHeaderBlock(inputStream); + inputStream.close(); + return infoHeader; + } + public static InfoHeader readHeaderBlock(InputStream inputStream) throws IOException { + InfoHeader infoHeader=new InfoHeader(); + infoHeader.readBytes(inputStream); + return infoHeader; + } + public static InfoHeader readHeaderBlock(BlockReader blockReader) throws IOException { + InfoHeader infoHeader=new InfoHeader(); + infoHeader.readBytes(blockReader); + return infoHeader; + } } diff --git a/src/main/java/com/reandroid/arsc/io/BlockReader.java b/src/main/java/com/reandroid/arsc/io/BlockReader.java index 50cf088..bce41a6 100755 --- a/src/main/java/com/reandroid/arsc/io/BlockReader.java +++ b/src/main/java/com/reandroid/arsc/io/BlockReader.java @@ -293,10 +293,10 @@ import java.io.*; } return buff; } - public static HeaderBlock readHeaderBlock(File file) throws IOException{ - return HeaderBlock.readHeaderBlock(file); + public static InfoHeader readHeaderBlock(File file) throws IOException{ + return InfoHeader.readHeaderBlock(file); } - public static HeaderBlock readHeaderBlock(InputStream inputStream) throws IOException{ - return HeaderBlock.readHeaderBlock(inputStream); + public static InfoHeader readHeaderBlock(InputStream inputStream) throws IOException{ + return InfoHeader.readHeaderBlock(inputStream); } }