FileIOUtils.smali

.class public final Lcom/blankj/utilcode/util/FileIOUtils;
.super Ljava/lang/Object;
.source "FileIOUtils.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;
    }
.end annotation


# static fields
.field private static sBufferSize:I


# direct methods
.method static constructor <clinit>()V
    .registers 1

    .line 36
    const/high16 v0, 0x80000

    sput v0, Lcom/blankj/utilcode/util/FileIOUtils;->sBufferSize:I

    return-void
.end method

.method private constructor <init>()V
    .registers 3

    .line 38
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 39
    new-instance v0, Ljava/lang/UnsupportedOperationException;

    const-string/jumbo v1, "u can\'t instantiate me..."

    invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V

    throw v0
.end method

.method private static createOrExistsDir(Ljava/io/File;)Z
    .registers 2
    .param p0, "file"    # Ljava/io/File;

    .line 939
    if-eqz p0, :cond_17

    invoke-virtual {p0}, Ljava/io/File;->exists()Z

    move-result v0

    if-eqz v0, :cond_f

    invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z

    move-result v0

    if-eqz v0, :cond_17

    goto :goto_15

    :cond_f
    invoke-virtual {p0}, Ljava/io/File;->mkdirs()Z

    move-result v0

    if-eqz v0, :cond_17

    :goto_15
    const/4 v0, 0x1

    goto :goto_18

    :cond_17
    const/4 v0, 0x0

    :goto_18
    return v0
.end method

.method private static createOrExistsFile(Ljava/io/File;)Z
    .registers 3
    .param p0, "file"    # Ljava/io/File;

    .line 927
    const/4 v0, 0x0

    if-nez p0, :cond_4

    return v0

    .line 928
    :cond_4
    invoke-virtual {p0}, Ljava/io/File;->exists()Z

    move-result v1

    if-eqz v1, :cond_f

    invoke-virtual {p0}, Ljava/io/File;->isFile()Z

    move-result v0

    return v0

    .line 929
    :cond_f
    invoke-virtual {p0}, Ljava/io/File;->getParentFile()Ljava/io/File;

    move-result-object v1

    invoke-static {v1}, Lcom/blankj/utilcode/util/FileIOUtils;->createOrExistsDir(Ljava/io/File;)Z

    move-result v1

    if-nez v1, :cond_1a

    return v0

    .line 931
    :cond_1a
    :try_start_1a
    invoke-virtual {p0}, Ljava/io/File;->createNewFile()Z

    move-result v0
    :try_end_1e
    .catch Ljava/io/IOException; {:try_start_1a .. :try_end_1e} :catch_1f

    return v0

    .line 932
    :catch_1f
    move-exception v1

    .line 933
    .local v1, "e":Ljava/io/IOException;
    invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V

    .line 934
    return v0
.end method

.method private static createOrExistsFile(Ljava/lang/String;)Z
    .registers 2
    .param p0, "filePath"    # Ljava/lang/String;

    .line 923
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    invoke-static {v0}, Lcom/blankj/utilcode/util/FileIOUtils;->createOrExistsFile(Ljava/io/File;)Z

    move-result v0

    return v0
.end method

.method private static getFileByPath(Ljava/lang/String;)Ljava/io/File;
    .registers 2
    .param p0, "filePath"    # Ljava/lang/String;

    .line 919
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->isSpace(Ljava/lang/String;)Z

    move-result v0

    if-eqz v0, :cond_8

    const/4 v0, 0x0

    goto :goto_d

    :cond_8
    new-instance v0, Ljava/io/File;

    invoke-direct {v0, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V

    :goto_d
    return-object v0
.end method

.method private static is2Bytes(Ljava/io/InputStream;)[B
    .registers 8
    .param p0, "is"    # Ljava/io/InputStream;

    .line 957
    const/4 v0, 0x0

    if-nez p0, :cond_4

    return-object v0

    .line 958
    :cond_4
    const/4 v1, 0x0

    .line 960
    .local v1, "os":Ljava/io/ByteArrayOutputStream;
    :try_start_5
    new-instance v2, Ljava/io/ByteArrayOutputStream;

    invoke-direct {v2}, Ljava/io/ByteArrayOutputStream;-><init>()V

    move-object v1, v2

    .line 961
    sget v2, Lcom/blankj/utilcode/util/FileIOUtils;->sBufferSize:I

    new-array v2, v2, [B

    .line 963
    .local v2, "b":[B
    :goto_f
    sget v3, Lcom/blankj/utilcode/util/FileIOUtils;->sBufferSize:I

    const/4 v4, 0x0

    invoke-virtual {p0, v2, v4, v3}, Ljava/io/InputStream;->read([BII)I

    move-result v3

    move v5, v3

    .local v5, "len":I
    const/4 v6, -0x1

    if-eq v3, v6, :cond_1e

    .line 964
    invoke-virtual {v1, v2, v4, v5}, Ljava/io/ByteArrayOutputStream;->write([BII)V

    goto :goto_f

    .line 966
    :cond_1e
    invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B

    move-result-object v0
    :try_end_22
    .catch Ljava/io/IOException; {:try_start_5 .. :try_end_22} :catch_36
    .catchall {:try_start_5 .. :try_end_22} :catchall_34

    .line 972
    :try_start_22
    invoke-virtual {p0}, Ljava/io/InputStream;->close()V
    :try_end_25
    .catch Ljava/io/IOException; {:try_start_22 .. :try_end_25} :catch_26

    .line 975
    goto :goto_2a

    .line 973
    :catch_26
    move-exception v3

    .line 974
    .local v3, "e":Ljava/io/IOException;
    invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V

    .line 977
    .end local v3    # "e":Ljava/io/IOException;
    :goto_2a
    nop

    .line 978
    :try_start_2b
    invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->close()V
    :try_end_2e
    .catch Ljava/io/IOException; {:try_start_2b .. :try_end_2e} :catch_2f

    .line 982
    goto :goto_33

    .line 980
    :catch_2f
    move-exception v3

    .line 981
    .restart local v3    # "e":Ljava/io/IOException;
    invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V

    .line 966
    .end local v3    # "e":Ljava/io/IOException;
    :goto_33
    return-object v0

    .line 971
    .end local v2    # "b":[B
    .end local v5    # "len":I
    :catchall_34
    move-exception v0

    goto :goto_50

    .line 967
    :catch_36
    move-exception v2

    .line 968
    .local v2, "e":Ljava/io/IOException;
    :try_start_37
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
    :try_end_3a
    .catchall {:try_start_37 .. :try_end_3a} :catchall_34

    .line 969
    nop

    .line 972
    :try_start_3b
    invoke-virtual {p0}, Ljava/io/InputStream;->close()V
    :try_end_3e
    .catch Ljava/io/IOException; {:try_start_3b .. :try_end_3e} :catch_3f

    .line 975
    goto :goto_43

    .line 973
    :catch_3f
    move-exception v3

    .line 974
    .restart local v3    # "e":Ljava/io/IOException;
    invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V

    .line 977
    .end local v3    # "e":Ljava/io/IOException;
    :goto_43
    if-eqz v1, :cond_4e

    .line 978
    :try_start_45
    invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->close()V
    :try_end_48
    .catch Ljava/io/IOException; {:try_start_45 .. :try_end_48} :catch_49

    goto :goto_4e

    .line 980
    :catch_49
    move-exception v3

    .line 981
    .restart local v3    # "e":Ljava/io/IOException;
    invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_4f

    .line 982
    .end local v3    # "e":Ljava/io/IOException;
    :cond_4e
    :goto_4e
    nop

    .line 969
    :goto_4f
    return-object v0

    .line 972
    .end local v2    # "e":Ljava/io/IOException;
    :goto_50
    :try_start_50
    invoke-virtual {p0}, Ljava/io/InputStream;->close()V
    :try_end_53
    .catch Ljava/io/IOException; {:try_start_50 .. :try_end_53} :catch_54

    .line 975
    goto :goto_58

    .line 973
    :catch_54
    move-exception v2

    .line 974
    .restart local v2    # "e":Ljava/io/IOException;
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V

    .line 977
    .end local v2    # "e":Ljava/io/IOException;
    :goto_58
    if-eqz v1, :cond_63

    .line 978
    :try_start_5a
    invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->close()V
    :try_end_5d
    .catch Ljava/io/IOException; {:try_start_5a .. :try_end_5d} :catch_5e

    goto :goto_63

    .line 980
    :catch_5e
    move-exception v2

    .line 981
    .restart local v2    # "e":Ljava/io/IOException;
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_64

    .line 982
    .end local v2    # "e":Ljava/io/IOException;
    :cond_63
    :goto_63
    nop

    .line 983
    :goto_64
    goto :goto_66

    :goto_65
    throw v0

    :goto_66
    goto :goto_65
.end method

.method private static isFileExists(Ljava/io/File;)Z
    .registers 2
    .param p0, "file"    # Ljava/io/File;

    .line 943
    if-eqz p0, :cond_a

    invoke-virtual {p0}, Ljava/io/File;->exists()Z

    move-result v0

    if-eqz v0, :cond_a

    const/4 v0, 0x1

    goto :goto_b

    :cond_a
    const/4 v0, 0x0

    :goto_b
    return v0
.end method

.method private static isSpace(Ljava/lang/String;)Z
    .registers 5
    .param p0, "s"    # Ljava/lang/String;

    .line 947
    const/4 v0, 0x1

    if-nez p0, :cond_4

    return v0

    .line 948
    :cond_4
    const/4 v1, 0x0

    .local v1, "i":I
    invoke-virtual {p0}, Ljava/lang/String;->length()I

    move-result v2

    .local v2, "len":I
    :goto_9
    if-ge v1, v2, :cond_1a

    .line 949
    invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C

    move-result v3

    invoke-static {v3}, Ljava/lang/Character;->isWhitespace(C)Z

    move-result v3

    if-nez v3, :cond_17

    .line 950
    const/4 v0, 0x0

    return v0

    .line 948
    :cond_17
    add-int/lit8 v1, v1, 0x1

    goto :goto_9

    .line 953
    .end local v1    # "i":I
    .end local v2    # "len":I
    :cond_1a
    return v0
.end method

.method public static readFile2BytesByChannel(Ljava/io/File;)[B
    .registers 5
    .param p0, "file"    # Ljava/io/File;

    .line 841
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->isFileExists(Ljava/io/File;)Z

    move-result v0

    const/4 v1, 0x0

    if-nez v0, :cond_8

    return-object v1

    .line 842
    :cond_8
    const/4 v0, 0x0

    .line 844
    .local v0, "fc":Ljava/nio/channels/FileChannel;
    :try_start_9
    new-instance v2, Ljava/io/RandomAccessFile;

    const-string v3, "r"

    invoke-direct {v2, p0, v3}, Ljava/io/RandomAccessFile;-><init>(Ljava/io/File;Ljava/lang/String;)V

    invoke-virtual {v2}, Ljava/io/RandomAccessFile;->getChannel()Ljava/nio/channels/FileChannel;

    move-result-object v2

    move-object v0, v2

    .line 845
    invoke-virtual {v0}, Ljava/nio/channels/FileChannel;->size()J

    move-result-wide v2

    long-to-int v3, v2

    invoke-static {v3}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;

    move-result-object v2

    .line 847
    .local v2, "byteBuffer":Ljava/nio/ByteBuffer;
    :cond_1e
    invoke-virtual {v0, v2}, Ljava/nio/channels/FileChannel;->read(Ljava/nio/ByteBuffer;)I

    move-result v3

    if-gtz v3, :cond_1e

    .line 849
    invoke-virtual {v2}, Ljava/nio/ByteBuffer;->array()[B

    move-result-object v1
    :try_end_28
    .catch Ljava/io/IOException; {:try_start_9 .. :try_end_28} :catch_37
    .catchall {:try_start_9 .. :try_end_28} :catchall_35

    .line 855
    if-eqz v0, :cond_33

    .line 856
    :try_start_2a
    invoke-virtual {v0}, Ljava/nio/channels/FileChannel;->close()V
    :try_end_2d
    .catch Ljava/io/IOException; {:try_start_2a .. :try_end_2d} :catch_2e

    goto :goto_33

    .line 858
    :catch_2e
    move-exception v3

    .line 859
    .local v3, "e":Ljava/io/IOException;
    invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_34

    .line 860
    .end local v3    # "e":Ljava/io/IOException;
    :cond_33
    :goto_33
    nop

    .line 849
    :goto_34
    return-object v1

    .line 854
    .end local v2    # "byteBuffer":Ljava/nio/ByteBuffer;
    :catchall_35
    move-exception v1

    goto :goto_49

    .line 850
    :catch_37
    move-exception v2

    .line 851
    .local v2, "e":Ljava/io/IOException;
    :try_start_38
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
    :try_end_3b
    .catchall {:try_start_38 .. :try_end_3b} :catchall_35

    .line 852
    nop

    .line 855
    if-eqz v0, :cond_47

    .line 856
    :try_start_3e
    invoke-virtual {v0}, Ljava/nio/channels/FileChannel;->close()V
    :try_end_41
    .catch Ljava/io/IOException; {:try_start_3e .. :try_end_41} :catch_42

    goto :goto_47

    .line 858
    :catch_42
    move-exception v3

    .line 859
    .restart local v3    # "e":Ljava/io/IOException;
    invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_48

    .line 860
    .end local v3    # "e":Ljava/io/IOException;
    :cond_47
    :goto_47
    nop

    .line 852
    :goto_48
    return-object v1

    .line 855
    .end local v2    # "e":Ljava/io/IOException;
    :goto_49
    if-eqz v0, :cond_54

    .line 856
    :try_start_4b
    invoke-virtual {v0}, Ljava/nio/channels/FileChannel;->close()V
    :try_end_4e
    .catch Ljava/io/IOException; {:try_start_4b .. :try_end_4e} :catch_4f

    goto :goto_54

    .line 858
    :catch_4f
    move-exception v2

    .line 859
    .restart local v2    # "e":Ljava/io/IOException;
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_55

    .line 860
    .end local v2    # "e":Ljava/io/IOException;
    :cond_54
    :goto_54
    nop

    .line 861
    :goto_55
    goto :goto_57

    :goto_56
    throw v1

    :goto_57
    goto :goto_56
.end method

.method public static readFile2BytesByChannel(Ljava/lang/String;)[B
    .registers 2
    .param p0, "filePath"    # Ljava/lang/String;

    .line 831
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    invoke-static {v0}, Lcom/blankj/utilcode/util/FileIOUtils;->readFile2BytesByChannel(Ljava/io/File;)[B

    move-result-object v0

    return-object v0
.end method

.method public static readFile2BytesByMap(Ljava/io/File;)[B
    .registers 11
    .param p0, "file"    # Ljava/io/File;

    .line 881
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->isFileExists(Ljava/io/File;)Z

    move-result v0

    const/4 v1, 0x0

    if-nez v0, :cond_8

    return-object v1

    .line 882
    :cond_8
    const/4 v0, 0x0

    .line 884
    .local v0, "fc":Ljava/nio/channels/FileChannel;
    :try_start_9
    new-instance v2, Ljava/io/RandomAccessFile;

    const-string v3, "r"

    invoke-direct {v2, p0, v3}, Ljava/io/RandomAccessFile;-><init>(Ljava/io/File;Ljava/lang/String;)V

    invoke-virtual {v2}, Ljava/io/RandomAccessFile;->getChannel()Ljava/nio/channels/FileChannel;

    move-result-object v2

    move-object v0, v2

    .line 885
    invoke-virtual {v0}, Ljava/nio/channels/FileChannel;->size()J

    move-result-wide v2

    long-to-int v9, v2

    .line 886
    .local v9, "size":I
    sget-object v4, Ljava/nio/channels/FileChannel$MapMode;->READ_ONLY:Ljava/nio/channels/FileChannel$MapMode;

    const-wide/16 v5, 0x0

    int-to-long v7, v9

    move-object v3, v0

    invoke-virtual/range {v3 .. v8}, Ljava/nio/channels/FileChannel;->map(Ljava/nio/channels/FileChannel$MapMode;JJ)Ljava/nio/MappedByteBuffer;

    move-result-object v2

    invoke-virtual {v2}, Ljava/nio/MappedByteBuffer;->load()Ljava/nio/MappedByteBuffer;

    move-result-object v2

    .line 887
    .local v2, "mbb":Ljava/nio/MappedByteBuffer;
    new-array v3, v9, [B

    .line 888
    .local v3, "result":[B
    const/4 v4, 0x0

    invoke-virtual {v2, v3, v4, v9}, Ljava/nio/MappedByteBuffer;->get([BII)Ljava/nio/ByteBuffer;
    :try_end_2e
    .catch Ljava/io/IOException; {:try_start_9 .. :try_end_2e} :catch_3e
    .catchall {:try_start_9 .. :try_end_2e} :catchall_3c

    .line 889
    nop

    .line 895
    if-eqz v0, :cond_3a

    .line 896
    :try_start_31
    invoke-virtual {v0}, Ljava/nio/channels/FileChannel;->close()V
    :try_end_34
    .catch Ljava/io/IOException; {:try_start_31 .. :try_end_34} :catch_35

    goto :goto_3a

    .line 898
    :catch_35
    move-exception v1

    .line 899
    .local v1, "e":Ljava/io/IOException;
    invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_3b

    .line 900
    .end local v1    # "e":Ljava/io/IOException;
    :cond_3a
    :goto_3a
    nop

    .line 889
    :goto_3b
    return-object v3

    .line 894
    .end local v2    # "mbb":Ljava/nio/MappedByteBuffer;
    .end local v3    # "result":[B
    .end local v9    # "size":I
    :catchall_3c
    move-exception v1

    goto :goto_50

    .line 890
    :catch_3e
    move-exception v2

    .line 891
    .local v2, "e":Ljava/io/IOException;
    :try_start_3f
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
    :try_end_42
    .catchall {:try_start_3f .. :try_end_42} :catchall_3c

    .line 892
    nop

    .line 895
    if-eqz v0, :cond_4e

    .line 896
    :try_start_45
    invoke-virtual {v0}, Ljava/nio/channels/FileChannel;->close()V
    :try_end_48
    .catch Ljava/io/IOException; {:try_start_45 .. :try_end_48} :catch_49

    goto :goto_4e

    .line 898
    :catch_49
    move-exception v3

    .line 899
    .local v3, "e":Ljava/io/IOException;
    invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_4f

    .line 900
    .end local v3    # "e":Ljava/io/IOException;
    :cond_4e
    :goto_4e
    nop

    .line 892
    :goto_4f
    return-object v1

    .line 895
    .end local v2    # "e":Ljava/io/IOException;
    :goto_50
    if-eqz v0, :cond_5b

    .line 896
    :try_start_52
    invoke-virtual {v0}, Ljava/nio/channels/FileChannel;->close()V
    :try_end_55
    .catch Ljava/io/IOException; {:try_start_52 .. :try_end_55} :catch_56

    goto :goto_5b

    .line 898
    :catch_56
    move-exception v2

    .line 899
    .restart local v2    # "e":Ljava/io/IOException;
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_5c

    .line 900
    .end local v2    # "e":Ljava/io/IOException;
    :cond_5b
    :goto_5b
    nop

    .line 901
    :goto_5c
    throw v1
.end method

.method public static readFile2BytesByMap(Ljava/lang/String;)[B
    .registers 2
    .param p0, "filePath"    # Ljava/lang/String;

    .line 871
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    invoke-static {v0}, Lcom/blankj/utilcode/util/FileIOUtils;->readFile2BytesByMap(Ljava/io/File;)[B

    move-result-object v0

    return-object v0
.end method

.method public static readFile2BytesByStream(Ljava/io/File;)[B
    .registers 2
    .param p0, "file"    # Ljava/io/File;

    .line 750
    const/4 v0, 0x0

    invoke-static {p0, v0}, Lcom/blankj/utilcode/util/FileIOUtils;->readFile2BytesByStream(Ljava/io/File;Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)[B

    move-result-object v0

    return-object v0
.end method

.method public static readFile2BytesByStream(Ljava/io/File;Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)[B
    .registers 15
    .param p0, "file"    # Ljava/io/File;
    .param p1, "listener"    # Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;

    .line 778
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->isFileExists(Ljava/io/File;)Z

    move-result v0

    const/4 v1, 0x0

    if-nez v0, :cond_8

    return-object v1

    .line 780
    :cond_8
    const/4 v0, 0x0

    .line 781
    .local v0, "os":Ljava/io/ByteArrayOutputStream;
    :try_start_9
    new-instance v2, Ljava/io/BufferedInputStream;

    new-instance v3, Ljava/io/FileInputStream;

    invoke-direct {v3, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V

    sget v4, Lcom/blankj/utilcode/util/FileIOUtils;->sBufferSize:I

    invoke-direct {v2, v3, v4}, Ljava/io/BufferedInputStream;-><init>(Ljava/io/InputStream;I)V
    :try_end_15
    .catch Ljava/io/FileNotFoundException; {:try_start_9 .. :try_end_15} :catch_9d

    .line 783
    .local v2, "is":Ljava/io/InputStream;
    :try_start_15
    new-instance v3, Ljava/io/ByteArrayOutputStream;

    invoke-direct {v3}, Ljava/io/ByteArrayOutputStream;-><init>()V

    move-object v0, v3

    .line 784
    sget v3, Lcom/blankj/utilcode/util/FileIOUtils;->sBufferSize:I

    new-array v3, v3, [B

    .line 786
    .local v3, "b":[B
    const/4 v4, -0x1

    const/4 v5, 0x0

    if-nez p1, :cond_30

    .line 787
    :goto_23
    sget v6, Lcom/blankj/utilcode/util/FileIOUtils;->sBufferSize:I

    invoke-virtual {v2, v3, v5, v6}, Ljava/io/InputStream;->read([BII)I

    move-result v6

    move v7, v6

    .local v7, "len":I
    if-eq v6, v4, :cond_55

    .line 788
    invoke-virtual {v0, v3, v5, v7}, Ljava/io/ByteArrayOutputStream;->write([BII)V

    goto :goto_23

    .line 791
    .end local v7    # "len":I
    :cond_30
    invoke-virtual {v2}, Ljava/io/InputStream;->available()I

    move-result v6

    int-to-double v6, v6

    .line 792
    .local v6, "totalSize":D
    const/4 v8, 0x0

    .line 793
    .local v8, "curSize":I
    const-wide/16 v9, 0x0

    invoke-interface {p1, v9, v10}, Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;->onProgressUpdate(D)V

    .line 794
    :goto_3b
    sget v9, Lcom/blankj/utilcode/util/FileIOUtils;->sBufferSize:I

    invoke-virtual {v2, v3, v5, v9}, Ljava/io/InputStream;->read([BII)I

    move-result v9

    move v10, v9

    .local v10, "len":I
    if-eq v9, v4, :cond_54

    .line 795
    invoke-virtual {v0, v3, v5, v10}, Ljava/io/ByteArrayOutputStream;->write([BII)V
    :try_end_47
    .catch Ljava/io/IOException; {:try_start_15 .. :try_end_47} :catch_6d
    .catchall {:try_start_15 .. :try_end_47} :catchall_6b

    .line 796
    add-int/2addr v8, v10

    .line 797
    int-to-double v11, v8

    invoke-static {v11, v12}, Ljava/lang/Double;->isNaN(D)Z

    invoke-static {v6, v7}, Ljava/lang/Double;->isNaN(D)Z

    div-double/2addr v11, v6

    :try_start_50
    invoke-interface {p1, v11, v12}, Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;->onProgressUpdate(D)V

    goto :goto_3b

    .line 794
    :cond_54
    move v7, v10

    .line 800
    .end local v6    # "totalSize":D
    .end local v8    # "curSize":I
    .end local v10    # "len":I
    .restart local v7    # "len":I
    :cond_55
    invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B

    move-result-object v4
    :try_end_59
    .catch Ljava/io/IOException; {:try_start_50 .. :try_end_59} :catch_6d
    .catchall {:try_start_50 .. :try_end_59} :catchall_6b

    .line 806
    :try_start_59
    invoke-virtual {v2}, Ljava/io/InputStream;->close()V
    :try_end_5c
    .catch Ljava/io/IOException; {:try_start_59 .. :try_end_5c} :catch_5d
    .catch Ljava/io/FileNotFoundException; {:try_start_59 .. :try_end_5c} :catch_9d

    .line 809
    goto :goto_61

    .line 807
    :catch_5d
    move-exception v5

    .line 808
    .local v5, "e":Ljava/io/IOException;
    :try_start_5e
    invoke-virtual {v5}, Ljava/io/IOException;->printStackTrace()V
    :try_end_61
    .catch Ljava/io/FileNotFoundException; {:try_start_5e .. :try_end_61} :catch_9d

    .line 811
    .end local v5    # "e":Ljava/io/IOException;
    :goto_61
    nop

    .line 812
    :try_start_62
    invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->close()V
    :try_end_65
    .catch Ljava/io/IOException; {:try_start_62 .. :try_end_65} :catch_66
    .catch Ljava/io/FileNotFoundException; {:try_start_62 .. :try_end_65} :catch_9d

    .line 816
    goto :goto_6a

    .line 814
    :catch_66
    move-exception v5

    .line 815
    .restart local v5    # "e":Ljava/io/IOException;
    :try_start_67
    invoke-virtual {v5}, Ljava/io/IOException;->printStackTrace()V
    :try_end_6a
    .catch Ljava/io/FileNotFoundException; {:try_start_67 .. :try_end_6a} :catch_9d

    .line 800
    .end local v5    # "e":Ljava/io/IOException;
    :goto_6a
    return-object v4

    .line 805
    .end local v3    # "b":[B
    .end local v7    # "len":I
    :catchall_6b
    move-exception v3

    goto :goto_87

    .line 801
    :catch_6d
    move-exception v3

    .line 802
    .local v3, "e":Ljava/io/IOException;
    :try_start_6e
    invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V
    :try_end_71
    .catchall {:try_start_6e .. :try_end_71} :catchall_6b

    .line 803
    nop

    .line 806
    :try_start_72
    invoke-virtual {v2}, Ljava/io/InputStream;->close()V
    :try_end_75
    .catch Ljava/io/IOException; {:try_start_72 .. :try_end_75} :catch_76
    .catch Ljava/io/FileNotFoundException; {:try_start_72 .. :try_end_75} :catch_9d

    .line 809
    goto :goto_7a

    .line 807
    :catch_76
    move-exception v4

    .line 808
    .local v4, "e":Ljava/io/IOException;
    :try_start_77
    invoke-virtual {v4}, Ljava/io/IOException;->printStackTrace()V
    :try_end_7a
    .catch Ljava/io/FileNotFoundException; {:try_start_77 .. :try_end_7a} :catch_9d

    .line 811
    .end local v4    # "e":Ljava/io/IOException;
    :goto_7a
    if-eqz v0, :cond_85

    .line 812
    :try_start_7c
    invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->close()V
    :try_end_7f
    .catch Ljava/io/IOException; {:try_start_7c .. :try_end_7f} :catch_80
    .catch Ljava/io/FileNotFoundException; {:try_start_7c .. :try_end_7f} :catch_9d

    goto :goto_85

    .line 814
    :catch_80
    move-exception v4

    .line 815
    .restart local v4    # "e":Ljava/io/IOException;
    :try_start_81
    invoke-virtual {v4}, Ljava/io/IOException;->printStackTrace()V
    :try_end_84
    .catch Ljava/io/FileNotFoundException; {:try_start_81 .. :try_end_84} :catch_9d

    goto :goto_86

    .line 816
    .end local v4    # "e":Ljava/io/IOException;
    :cond_85
    :goto_85
    nop

    .line 803
    :goto_86
    return-object v1

    .line 806
    .end local v3    # "e":Ljava/io/IOException;
    :goto_87
    :try_start_87
    invoke-virtual {v2}, Ljava/io/InputStream;->close()V
    :try_end_8a
    .catch Ljava/io/IOException; {:try_start_87 .. :try_end_8a} :catch_8b
    .catch Ljava/io/FileNotFoundException; {:try_start_87 .. :try_end_8a} :catch_9d

    .line 809
    goto :goto_8f

    .line 807
    :catch_8b
    move-exception v4

    .line 808
    .restart local v4    # "e":Ljava/io/IOException;
    :try_start_8c
    invoke-virtual {v4}, Ljava/io/IOException;->printStackTrace()V
    :try_end_8f
    .catch Ljava/io/FileNotFoundException; {:try_start_8c .. :try_end_8f} :catch_9d

    .line 811
    .end local v4    # "e":Ljava/io/IOException;
    :goto_8f
    if-eqz v0, :cond_9a

    .line 812
    :try_start_91
    invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->close()V
    :try_end_94
    .catch Ljava/io/IOException; {:try_start_91 .. :try_end_94} :catch_95
    .catch Ljava/io/FileNotFoundException; {:try_start_91 .. :try_end_94} :catch_9d

    goto :goto_9a

    .line 814
    :catch_95
    move-exception v4

    .line 815
    .restart local v4    # "e":Ljava/io/IOException;
    :try_start_96
    invoke-virtual {v4}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_9b

    .line 816
    .end local v4    # "e":Ljava/io/IOException;
    :cond_9a
    :goto_9a
    nop

    .line 817
    :goto_9b
    nop

    .end local p0    # "file":Ljava/io/File;
    .end local p1    # "listener":Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;
    throw v3
    :try_end_9d
    .catch Ljava/io/FileNotFoundException; {:try_start_96 .. :try_end_9d} :catch_9d

    .line 818
    .end local v0    # "os":Ljava/io/ByteArrayOutputStream;
    .end local v2    # "is":Ljava/io/InputStream;
    .restart local p0    # "file":Ljava/io/File;
    .restart local p1    # "listener":Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;
    :catch_9d
    move-exception v0

    .line 819
    .local v0, "e":Ljava/io/FileNotFoundException;
    invoke-virtual {v0}, Ljava/io/FileNotFoundException;->printStackTrace()V

    .line 820
    return-object v1
.end method

.method public static readFile2BytesByStream(Ljava/lang/String;)[B
    .registers 3
    .param p0, "filePath"    # Ljava/lang/String;

    .line 740
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    const/4 v1, 0x0

    invoke-static {v0, v1}, Lcom/blankj/utilcode/util/FileIOUtils;->readFile2BytesByStream(Ljava/io/File;Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)[B

    move-result-object v0

    return-object v0
.end method

.method public static readFile2BytesByStream(Ljava/lang/String;Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)[B
    .registers 3
    .param p0, "filePath"    # Ljava/lang/String;
    .param p1, "listener"    # Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;

    .line 766
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    invoke-static {v0}, Lcom/blankj/utilcode/util/FileIOUtils;->readFile2BytesByStream(Ljava/io/File;)[B

    move-result-object v0

    return-object v0
.end method

.method public static readFile2List(Ljava/io/File;)Ljava/util/List;
    .registers 4
    .param p0, "file"    # Ljava/io/File;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/io/File;",
            ")",
            "Ljava/util/List<",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation

    .line 575
    const/4 v0, 0x0

    const v1, 0x7fffffff

    const/4 v2, 0x0

    invoke-static {p0, v0, v1, v2}, Lcom/blankj/utilcode/util/FileIOUtils;->readFile2List(Ljava/io/File;IILjava/lang/String;)Ljava/util/List;

    move-result-object v0

    return-object v0
.end method

.method public static readFile2List(Ljava/io/File;II)Ljava/util/List;
    .registers 4
    .param p0, "file"    # Ljava/io/File;
    .param p1, "st"    # I
    .param p2, "end"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/io/File;",
            "II)",
            "Ljava/util/List<",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation

    .line 626
    const/4 v0, 0x0

    invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/FileIOUtils;->readFile2List(Ljava/io/File;IILjava/lang/String;)Ljava/util/List;

    move-result-object v0

    return-object v0
.end method

.method public static readFile2List(Ljava/io/File;IILjava/lang/String;)Ljava/util/List;
    .registers 11
    .param p0, "file"    # Ljava/io/File;
    .param p1, "st"    # I
    .param p2, "end"    # I
    .param p3, "charsetName"    # Ljava/lang/String;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/io/File;",
            "II",
            "Ljava/lang/String;",
            ")",
            "Ljava/util/List<",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation

    .line 642
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->isFileExists(Ljava/io/File;)Z

    move-result v0

    const/4 v1, 0x0

    if-nez v0, :cond_8

    return-object v1

    .line 643
    :cond_8
    if-le p1, p2, :cond_b

    return-object v1

    .line 644
    :cond_b
    const/4 v0, 0x0

    .line 647
    .local v0, "reader":Ljava/io/BufferedReader;
    const/4 v2, 0x1

    .line 648
    .local v2, "curLine":I
    :try_start_d
    new-instance v3, Ljava/util/ArrayList;

    invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V

    .line 649
    .local v3, "list":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;"
    invoke-static {p3}, Lcom/blankj/utilcode/util/FileIOUtils;->isSpace(Ljava/lang/String;)Z

    move-result v4

    if-eqz v4, :cond_29

    .line 650
    new-instance v4, Ljava/io/BufferedReader;

    new-instance v5, Ljava/io/InputStreamReader;

    new-instance v6, Ljava/io/FileInputStream;

    invoke-direct {v6, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V

    invoke-direct {v5, v6}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V

    invoke-direct {v4, v5}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V

    move-object v0, v4

    goto :goto_39

    .line 652
    :cond_29
    new-instance v4, Ljava/io/BufferedReader;

    new-instance v5, Ljava/io/InputStreamReader;

    new-instance v6, Ljava/io/FileInputStream;

    invoke-direct {v6, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V

    invoke-direct {v5, v6, p3}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;Ljava/lang/String;)V

    invoke-direct {v4, v5}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V

    move-object v0, v4

    .line 656
    :goto_39
    invoke-virtual {v0}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;

    move-result-object v4

    move-object v5, v4

    .local v5, "line":Ljava/lang/String;
    if-eqz v4, :cond_4d

    .line 657
    if-le v2, p2, :cond_43

    goto :goto_4d

    .line 658
    :cond_43
    if-gt p1, v2, :cond_4a

    if-gt v2, p2, :cond_4a

    invoke-interface {v3, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z
    :try_end_4a
    .catch Ljava/io/IOException; {:try_start_d .. :try_end_4a} :catch_5a
    .catchall {:try_start_d .. :try_end_4a} :catchall_58

    .line 659
    :cond_4a
    add-int/lit8 v2, v2, 0x1

    goto :goto_39

    .line 661
    :cond_4d
    :goto_4d
    nop

    .line 667
    nop

    .line 668
    :try_start_4f
    invoke-virtual {v0}, Ljava/io/BufferedReader;->close()V
    :try_end_52
    .catch Ljava/io/IOException; {:try_start_4f .. :try_end_52} :catch_53

    .line 672
    goto :goto_57

    .line 670
    :catch_53
    move-exception v1

    .line 671
    .local v1, "e":Ljava/io/IOException;
    invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V

    .line 661
    .end local v1    # "e":Ljava/io/IOException;
    :goto_57
    return-object v3

    .line 666
    .end local v2    # "curLine":I
    .end local v3    # "list":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;"
    .end local v5    # "line":Ljava/lang/String;
    :catchall_58
    move-exception v1

    goto :goto_6c

    .line 662
    :catch_5a
    move-exception v2

    .line 663
    .local v2, "e":Ljava/io/IOException;
    :try_start_5b
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
    :try_end_5e
    .catchall {:try_start_5b .. :try_end_5e} :catchall_58

    .line 664
    nop

    .line 667
    if-eqz v0, :cond_6a

    .line 668
    :try_start_61
    invoke-virtual {v0}, Ljava/io/BufferedReader;->close()V
    :try_end_64
    .catch Ljava/io/IOException; {:try_start_61 .. :try_end_64} :catch_65

    goto :goto_6a

    .line 670
    :catch_65
    move-exception v3

    .line 671
    .local v3, "e":Ljava/io/IOException;
    invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_6b

    .line 672
    .end local v3    # "e":Ljava/io/IOException;
    :cond_6a
    :goto_6a
    nop

    .line 664
    :goto_6b
    return-object v1

    .line 667
    .end local v2    # "e":Ljava/io/IOException;
    :goto_6c
    if-eqz v0, :cond_77

    .line 668
    :try_start_6e
    invoke-virtual {v0}, Ljava/io/BufferedReader;->close()V
    :try_end_71
    .catch Ljava/io/IOException; {:try_start_6e .. :try_end_71} :catch_72

    goto :goto_77

    .line 670
    :catch_72
    move-exception v2

    .line 671
    .restart local v2    # "e":Ljava/io/IOException;
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_78

    .line 672
    .end local v2    # "e":Ljava/io/IOException;
    :cond_77
    :goto_77
    nop

    .line 673
    :goto_78
    goto :goto_7a

    :goto_79
    throw v1

    :goto_7a
    goto :goto_79
.end method

.method public static readFile2List(Ljava/io/File;Ljava/lang/String;)Ljava/util/List;
    .registers 4
    .param p0, "file"    # Ljava/io/File;
    .param p1, "charsetName"    # Ljava/lang/String;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/io/File;",
            "Ljava/lang/String;",
            ")",
            "Ljava/util/List<",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation

    .line 586
    const/4 v0, 0x0

    const v1, 0x7fffffff

    invoke-static {p0, v0, v1, p1}, Lcom/blankj/utilcode/util/FileIOUtils;->readFile2List(Ljava/io/File;IILjava/lang/String;)Ljava/util/List;

    move-result-object v0

    return-object v0
.end method

.method public static readFile2List(Ljava/lang/String;)Ljava/util/List;
    .registers 3
    .param p0, "filePath"    # Ljava/lang/String;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/String;",
            ")",
            "Ljava/util/List<",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation

    .line 554
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    const/4 v1, 0x0

    invoke-static {v0, v1}, Lcom/blankj/utilcode/util/FileIOUtils;->readFile2List(Ljava/io/File;Ljava/lang/String;)Ljava/util/List;

    move-result-object v0

    return-object v0
.end method

.method public static readFile2List(Ljava/lang/String;II)Ljava/util/List;
    .registers 5
    .param p0, "filePath"    # Ljava/lang/String;
    .param p1, "st"    # I
    .param p2, "end"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/String;",
            "II)",
            "Ljava/util/List<",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation

    .line 598
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    const/4 v1, 0x0

    invoke-static {v0, p1, p2, v1}, Lcom/blankj/utilcode/util/FileIOUtils;->readFile2List(Ljava/io/File;IILjava/lang/String;)Ljava/util/List;

    move-result-object v0

    return-object v0
.end method

.method public static readFile2List(Ljava/lang/String;IILjava/lang/String;)Ljava/util/List;
    .registers 5
    .param p0, "filePath"    # Ljava/lang/String;
    .param p1, "st"    # I
    .param p2, "end"    # I
    .param p3, "charsetName"    # Ljava/lang/String;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/String;",
            "II",
            "Ljava/lang/String;",
            ")",
            "Ljava/util/List<",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation

    .line 614
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    invoke-static {v0, p1, p2, p3}, Lcom/blankj/utilcode/util/FileIOUtils;->readFile2List(Ljava/io/File;IILjava/lang/String;)Ljava/util/List;

    move-result-object v0

    return-object v0
.end method

.method public static readFile2List(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
    .registers 3
    .param p0, "filePath"    # Ljava/lang/String;
    .param p1, "charsetName"    # Ljava/lang/String;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/String;",
            "Ljava/lang/String;",
            ")",
            "Ljava/util/List<",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation

    .line 565
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    invoke-static {v0, p1}, Lcom/blankj/utilcode/util/FileIOUtils;->readFile2List(Ljava/io/File;Ljava/lang/String;)Ljava/util/List;

    move-result-object v0

    return-object v0
.end method

.method public static readFile2String(Ljava/io/File;)Ljava/lang/String;
    .registers 2
    .param p0, "file"    # Ljava/io/File;

    .line 704
    const/4 v0, 0x0

    invoke-static {p0, v0}, Lcom/blankj/utilcode/util/FileIOUtils;->readFile2String(Ljava/io/File;Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    return-object v0
.end method

.method public static readFile2String(Ljava/io/File;Ljava/lang/String;)Ljava/lang/String;
    .registers 5
    .param p0, "file"    # Ljava/io/File;
    .param p1, "charsetName"    # Ljava/lang/String;

    .line 715
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->readFile2BytesByStream(Ljava/io/File;)[B

    move-result-object v0

    .line 716
    .local v0, "bytes":[B
    if-nez v0, :cond_8

    const/4 v1, 0x0

    return-object v1

    .line 717
    :cond_8
    invoke-static {p1}, Lcom/blankj/utilcode/util/FileIOUtils;->isSpace(Ljava/lang/String;)Z

    move-result v1

    if-eqz v1, :cond_14

    .line 718
    new-instance v1, Ljava/lang/String;

    invoke-direct {v1, v0}, Ljava/lang/String;-><init>([B)V

    return-object v1

    .line 721
    :cond_14
    :try_start_14
    new-instance v1, Ljava/lang/String;

    invoke-direct {v1, v0, p1}, Ljava/lang/String;-><init>([BLjava/lang/String;)V
    :try_end_19
    .catch Ljava/io/UnsupportedEncodingException; {:try_start_14 .. :try_end_19} :catch_1a

    return-object v1

    .line 722
    :catch_1a
    move-exception v1

    .line 723
    .local v1, "e":Ljava/io/UnsupportedEncodingException;
    invoke-virtual {v1}, Ljava/io/UnsupportedEncodingException;->printStackTrace()V

    .line 724
    const-string v2, ""

    return-object v2
.end method

.method public static readFile2String(Ljava/lang/String;)Ljava/lang/String;
    .registers 3
    .param p0, "filePath"    # Ljava/lang/String;

    .line 683
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    const/4 v1, 0x0

    invoke-static {v0, v1}, Lcom/blankj/utilcode/util/FileIOUtils;->readFile2String(Ljava/io/File;Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    return-object v0
.end method

.method public static readFile2String(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    .registers 3
    .param p0, "filePath"    # Ljava/lang/String;
    .param p1, "charsetName"    # Ljava/lang/String;

    .line 694
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    invoke-static {v0, p1}, Lcom/blankj/utilcode/util/FileIOUtils;->readFile2String(Ljava/io/File;Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    return-object v0
.end method

.method public static setBufferSize(I)V
    .registers 1
    .param p0, "bufferSize"    # I

    .line 911
    sput p0, Lcom/blankj/utilcode/util/FileIOUtils;->sBufferSize:I

    .line 912
    return-void
.end method

.method public static writeFileFromBytesByChannel(Ljava/io/File;[BZ)Z
    .registers 4
    .param p0, "file"    # Ljava/io/File;
    .param p1, "bytes"    # [B
    .param p2, "isForce"    # Z

    .line 358
    const/4 v0, 0x0

    invoke-static {p0, p1, v0, p2}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromBytesByChannel(Ljava/io/File;[BZZ)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromBytesByChannel(Ljava/io/File;[BZZ)Z
    .registers 8
    .param p0, "file"    # Ljava/io/File;
    .param p1, "bytes"    # [B
    .param p2, "append"    # Z
    .param p3, "isForce"    # Z

    .line 374
    const/4 v0, 0x0

    if-eqz p1, :cond_58

    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->createOrExistsFile(Ljava/io/File;)Z

    move-result v1

    if-nez v1, :cond_a

    goto :goto_58

    .line 375
    :cond_a
    const/4 v1, 0x0

    .line 377
    .local v1, "fc":Ljava/nio/channels/FileChannel;
    :try_start_b
    new-instance v2, Ljava/io/FileOutputStream;

    invoke-direct {v2, p0, p2}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;Z)V

    invoke-virtual {v2}, Ljava/io/FileOutputStream;->getChannel()Ljava/nio/channels/FileChannel;

    move-result-object v2

    move-object v1, v2

    .line 378
    invoke-virtual {v1}, Ljava/nio/channels/FileChannel;->size()J

    move-result-wide v2

    invoke-virtual {v1, v2, v3}, Ljava/nio/channels/FileChannel;->position(J)Ljava/nio/channels/FileChannel;

    .line 379
    invoke-static {p1}, Ljava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer;

    move-result-object v2

    invoke-virtual {v1, v2}, Ljava/nio/channels/FileChannel;->write(Ljava/nio/ByteBuffer;)I

    .line 380
    const/4 v2, 0x1

    if-eqz p3, :cond_29

    invoke-virtual {v1, v2}, Ljava/nio/channels/FileChannel;->force(Z)V
    :try_end_29
    .catch Ljava/io/IOException; {:try_start_b .. :try_end_29} :catch_39
    .catchall {:try_start_b .. :try_end_29} :catchall_37

    .line 381
    :cond_29
    nop

    .line 387
    if-eqz v1, :cond_35

    .line 388
    :try_start_2c
    invoke-virtual {v1}, Ljava/nio/channels/FileChannel;->close()V
    :try_end_2f
    .catch Ljava/io/IOException; {:try_start_2c .. :try_end_2f} :catch_30

    goto :goto_35

    .line 390
    :catch_30
    move-exception v0

    .line 391
    .local v0, "e":Ljava/io/IOException;
    invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_36

    .line 392
    .end local v0    # "e":Ljava/io/IOException;
    :cond_35
    :goto_35
    nop

    .line 381
    :goto_36
    return v2

    .line 386
    :catchall_37
    move-exception v0

    goto :goto_4b

    .line 382
    :catch_39
    move-exception v2

    .line 383
    .local v2, "e":Ljava/io/IOException;
    :try_start_3a
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
    :try_end_3d
    .catchall {:try_start_3a .. :try_end_3d} :catchall_37

    .line 384
    nop

    .line 387
    if-eqz v1, :cond_49

    .line 388
    :try_start_40
    invoke-virtual {v1}, Ljava/nio/channels/FileChannel;->close()V
    :try_end_43
    .catch Ljava/io/IOException; {:try_start_40 .. :try_end_43} :catch_44

    goto :goto_49

    .line 390
    :catch_44
    move-exception v3

    .line 391
    .local v3, "e":Ljava/io/IOException;
    invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_4a

    .line 392
    .end local v3    # "e":Ljava/io/IOException;
    :cond_49
    :goto_49
    nop

    .line 384
    :goto_4a
    return v0

    .line 387
    .end local v2    # "e":Ljava/io/IOException;
    :goto_4b
    if-eqz v1, :cond_56

    .line 388
    :try_start_4d
    invoke-virtual {v1}, Ljava/nio/channels/FileChannel;->close()V
    :try_end_50
    .catch Ljava/io/IOException; {:try_start_4d .. :try_end_50} :catch_51

    goto :goto_56

    .line 390
    :catch_51
    move-exception v2

    .line 391
    .restart local v2    # "e":Ljava/io/IOException;
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_57

    .line 392
    .end local v2    # "e":Ljava/io/IOException;
    :cond_56
    :goto_56
    nop

    .line 393
    :goto_57
    throw v0

    .line 374
    .end local v1    # "fc":Ljava/nio/channels/FileChannel;
    :cond_58
    :goto_58
    return v0
.end method

.method public static writeFileFromBytesByChannel(Ljava/lang/String;[BZ)Z
    .registers 5
    .param p0, "filePath"    # Ljava/lang/String;
    .param p1, "bytes"    # [B
    .param p2, "isForce"    # Z

    .line 328
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    const/4 v1, 0x0

    invoke-static {v0, p1, v1, p2}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromBytesByChannel(Ljava/io/File;[BZZ)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromBytesByChannel(Ljava/lang/String;[BZZ)Z
    .registers 5
    .param p0, "filePath"    # Ljava/lang/String;
    .param p1, "bytes"    # [B
    .param p2, "append"    # Z
    .param p3, "isForce"    # Z

    .line 344
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    invoke-static {v0, p1, p2, p3}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromBytesByChannel(Ljava/io/File;[BZZ)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromBytesByMap(Ljava/io/File;[BZ)Z
    .registers 4
    .param p0, "file"    # Ljava/io/File;
    .param p1, "bytes"    # [B
    .param p2, "isForce"    # Z

    .line 437
    const/4 v0, 0x0

    invoke-static {p0, p1, v0, p2}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromBytesByMap(Ljava/io/File;[BZZ)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromBytesByMap(Ljava/io/File;[BZZ)Z
    .registers 13
    .param p0, "file"    # Ljava/io/File;
    .param p1, "bytes"    # [B
    .param p2, "append"    # Z
    .param p3, "isForce"    # Z

    .line 453
    const/4 v0, 0x0

    if-eqz p1, :cond_59

    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->createOrExistsFile(Ljava/io/File;)Z

    move-result v1

    if-nez v1, :cond_a

    goto :goto_59

    .line 454
    :cond_a
    const/4 v1, 0x0

    .line 456
    .local v1, "fc":Ljava/nio/channels/FileChannel;
    :try_start_b
    new-instance v2, Ljava/io/FileOutputStream;

    invoke-direct {v2, p0, p2}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;Z)V

    invoke-virtual {v2}, Ljava/io/FileOutputStream;->getChannel()Ljava/nio/channels/FileChannel;

    move-result-object v2

    move-object v1, v2

    .line 457
    sget-object v4, Ljava/nio/channels/FileChannel$MapMode;->READ_WRITE:Ljava/nio/channels/FileChannel$MapMode;

    invoke-virtual {v1}, Ljava/nio/channels/FileChannel;->size()J

    move-result-wide v5

    array-length v2, p1

    int-to-long v7, v2

    move-object v3, v1

    invoke-virtual/range {v3 .. v8}, Ljava/nio/channels/FileChannel;->map(Ljava/nio/channels/FileChannel$MapMode;JJ)Ljava/nio/MappedByteBuffer;

    move-result-object v2

    .line 458
    .local v2, "mbb":Ljava/nio/MappedByteBuffer;
    invoke-virtual {v2, p1}, Ljava/nio/MappedByteBuffer;->put([B)Ljava/nio/ByteBuffer;

    .line 459
    if-eqz p3, :cond_2a

    invoke-virtual {v2}, Ljava/nio/MappedByteBuffer;->force()Ljava/nio/MappedByteBuffer;
    :try_end_2a
    .catch Ljava/io/IOException; {:try_start_b .. :try_end_2a} :catch_3a
    .catchall {:try_start_b .. :try_end_2a} :catchall_38

    .line 460
    :cond_2a
    const/4 v0, 0x1

    .line 466
    if-eqz v1, :cond_36

    .line 467
    :try_start_2d
    invoke-virtual {v1}, Ljava/nio/channels/FileChannel;->close()V
    :try_end_30
    .catch Ljava/io/IOException; {:try_start_2d .. :try_end_30} :catch_31

    goto :goto_36

    .line 469
    :catch_31
    move-exception v3

    .line 470
    .local v3, "e":Ljava/io/IOException;
    invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_37

    .line 471
    .end local v3    # "e":Ljava/io/IOException;
    :cond_36
    :goto_36
    nop

    .line 460
    :goto_37
    return v0

    .line 465
    .end local v2    # "mbb":Ljava/nio/MappedByteBuffer;
    :catchall_38
    move-exception v0

    goto :goto_4c

    .line 461
    :catch_3a
    move-exception v2

    .line 462
    .local v2, "e":Ljava/io/IOException;
    :try_start_3b
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
    :try_end_3e
    .catchall {:try_start_3b .. :try_end_3e} :catchall_38

    .line 463
    nop

    .line 466
    if-eqz v1, :cond_4a

    .line 467
    :try_start_41
    invoke-virtual {v1}, Ljava/nio/channels/FileChannel;->close()V
    :try_end_44
    .catch Ljava/io/IOException; {:try_start_41 .. :try_end_44} :catch_45

    goto :goto_4a

    .line 469
    :catch_45
    move-exception v3

    .line 470
    .restart local v3    # "e":Ljava/io/IOException;
    invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_4b

    .line 471
    .end local v3    # "e":Ljava/io/IOException;
    :cond_4a
    :goto_4a
    nop

    .line 463
    :goto_4b
    return v0

    .line 466
    .end local v2    # "e":Ljava/io/IOException;
    :goto_4c
    if-eqz v1, :cond_57

    .line 467
    :try_start_4e
    invoke-virtual {v1}, Ljava/nio/channels/FileChannel;->close()V
    :try_end_51
    .catch Ljava/io/IOException; {:try_start_4e .. :try_end_51} :catch_52

    goto :goto_57

    .line 469
    :catch_52
    move-exception v2

    .line 470
    .restart local v2    # "e":Ljava/io/IOException;
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_58

    .line 471
    .end local v2    # "e":Ljava/io/IOException;
    :cond_57
    :goto_57
    nop

    .line 472
    :goto_58
    throw v0

    .line 453
    .end local v1    # "fc":Ljava/nio/channels/FileChannel;
    :cond_59
    :goto_59
    return v0
.end method

.method public static writeFileFromBytesByMap(Ljava/lang/String;[BZ)Z
    .registers 4
    .param p0, "filePath"    # Ljava/lang/String;
    .param p1, "bytes"    # [B
    .param p2, "isForce"    # Z

    .line 407
    const/4 v0, 0x0

    invoke-static {p0, p1, v0, p2}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromBytesByMap(Ljava/lang/String;[BZZ)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromBytesByMap(Ljava/lang/String;[BZZ)Z
    .registers 5
    .param p0, "filePath"    # Ljava/lang/String;
    .param p1, "bytes"    # [B
    .param p2, "append"    # Z
    .param p3, "isForce"    # Z

    .line 423
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    invoke-static {v0, p1, p2, p3}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromBytesByMap(Ljava/io/File;[BZZ)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromBytesByStream(Ljava/io/File;[B)Z
    .registers 4
    .param p0, "file"    # Ljava/io/File;
    .param p1, "bytes"    # [B

    .line 235
    const/4 v0, 0x0

    const/4 v1, 0x0

    invoke-static {p0, p1, v0, v1}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromBytesByStream(Ljava/io/File;[BZLcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromBytesByStream(Ljava/io/File;[BLcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z
    .registers 4
    .param p0, "file"    # Ljava/io/File;
    .param p1, "bytes"    # [B
    .param p2, "listener"    # Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;

    .line 297
    const/4 v0, 0x0

    invoke-static {p0, p1, v0, p2}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromBytesByStream(Ljava/io/File;[BZLcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromBytesByStream(Ljava/io/File;[BZ)Z
    .registers 4
    .param p0, "file"    # Ljava/io/File;
    .param p1, "bytes"    # [B
    .param p2, "append"    # Z

    .line 249
    const/4 v0, 0x0

    invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromBytesByStream(Ljava/io/File;[BZLcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromBytesByStream(Ljava/io/File;[BZLcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z
    .registers 5
    .param p0, "file"    # Ljava/io/File;
    .param p1, "bytes"    # [B
    .param p2, "append"    # Z
    .param p3, "listener"    # Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;

    .line 313
    if-nez p1, :cond_4

    const/4 v0, 0x0

    return v0

    .line 314
    :cond_4
    new-instance v0, Ljava/io/ByteArrayInputStream;

    invoke-direct {v0, p1}, Ljava/io/ByteArrayInputStream;-><init>([B)V

    invoke-static {p0, v0, p2, p3}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromIS(Ljava/io/File;Ljava/io/InputStream;ZLcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromBytesByStream(Ljava/lang/String;[B)Z
    .registers 5
    .param p0, "filePath"    # Ljava/lang/String;
    .param p1, "bytes"    # [B

    .line 210
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    const/4 v1, 0x0

    const/4 v2, 0x0

    invoke-static {v0, p1, v1, v2}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromBytesByStream(Ljava/io/File;[BZLcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromBytesByStream(Ljava/lang/String;[BLcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z
    .registers 5
    .param p0, "filePath"    # Ljava/lang/String;
    .param p1, "bytes"    # [B
    .param p2, "listener"    # Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;

    .line 267
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    const/4 v1, 0x0

    invoke-static {v0, p1, v1, p2}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromBytesByStream(Ljava/io/File;[BZLcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromBytesByStream(Ljava/lang/String;[BZ)Z
    .registers 5
    .param p0, "filePath"    # Ljava/lang/String;
    .param p1, "bytes"    # [B
    .param p2, "append"    # Z

    .line 224
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    const/4 v1, 0x0

    invoke-static {v0, p1, p2, v1}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromBytesByStream(Ljava/io/File;[BZLcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromBytesByStream(Ljava/lang/String;[BZLcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z
    .registers 5
    .param p0, "filePath"    # Ljava/lang/String;
    .param p1, "bytes"    # [B
    .param p2, "append"    # Z
    .param p3, "listener"    # Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;

    .line 283
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    invoke-static {v0, p1, p2, p3}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromBytesByStream(Ljava/io/File;[BZLcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromIS(Ljava/io/File;Ljava/io/InputStream;)Z
    .registers 4
    .param p0, "file"    # Ljava/io/File;
    .param p1, "is"    # Ljava/io/InputStream;

    .line 79
    const/4 v0, 0x0

    const/4 v1, 0x0

    invoke-static {p0, p1, v0, v1}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromIS(Ljava/io/File;Ljava/io/InputStream;ZLcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromIS(Ljava/io/File;Ljava/io/InputStream;Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z
    .registers 4
    .param p0, "file"    # Ljava/io/File;
    .param p1, "is"    # Ljava/io/InputStream;
    .param p2, "listener"    # Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;

    .line 141
    const/4 v0, 0x0

    invoke-static {p0, p1, v0, p2}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromIS(Ljava/io/File;Ljava/io/InputStream;ZLcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromIS(Ljava/io/File;Ljava/io/InputStream;Z)Z
    .registers 4
    .param p0, "file"    # Ljava/io/File;
    .param p1, "is"    # Ljava/io/InputStream;
    .param p2, "append"    # Z

    .line 93
    const/4 v0, 0x0

    invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromIS(Ljava/io/File;Ljava/io/InputStream;ZLcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromIS(Ljava/io/File;Ljava/io/InputStream;ZLcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z
    .registers 15
    .param p0, "file"    # Ljava/io/File;
    .param p1, "is"    # Ljava/io/InputStream;
    .param p2, "append"    # Z
    .param p3, "listener"    # Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;

    .line 157
    const/4 v0, 0x0

    if-eqz p1, :cond_96

    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->createOrExistsFile(Ljava/io/File;)Z

    move-result v1

    if-nez v1, :cond_b

    goto/16 :goto_96

    .line 158
    :cond_b
    const/4 v1, 0x0

    .line 160
    .local v1, "os":Ljava/io/OutputStream;
    :try_start_c
    new-instance v2, Ljava/io/BufferedOutputStream;

    new-instance v3, Ljava/io/FileOutputStream;

    invoke-direct {v3, p0, p2}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;Z)V

    sget v4, Lcom/blankj/utilcode/util/FileIOUtils;->sBufferSize:I

    invoke-direct {v2, v3, v4}, Ljava/io/BufferedOutputStream;-><init>(Ljava/io/OutputStream;I)V

    move-object v1, v2

    .line 161
    const/4 v2, -0x1

    if-nez p3, :cond_2c

    .line 162
    sget v3, Lcom/blankj/utilcode/util/FileIOUtils;->sBufferSize:I

    new-array v3, v3, [B

    .line 163
    .local v3, "data":[B
    :goto_20
    invoke-virtual {p1, v3}, Ljava/io/InputStream;->read([B)I

    move-result v4

    move v5, v4

    .local v5, "len":I
    if-eq v4, v2, :cond_2b

    .line 164
    invoke-virtual {v1, v3, v0, v5}, Ljava/io/OutputStream;->write([BII)V

    goto :goto_20

    .line 166
    .end local v3    # "data":[B
    .end local v5    # "len":I
    :cond_2b
    goto :goto_52

    .line 167
    :cond_2c
    invoke-virtual {p1}, Ljava/io/InputStream;->available()I

    move-result v3

    int-to-double v3, v3

    .line 168
    .local v3, "totalSize":D
    const/4 v5, 0x0

    .line 169
    .local v5, "curSize":I
    const-wide/16 v6, 0x0

    invoke-interface {p3, v6, v7}, Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;->onProgressUpdate(D)V

    .line 170
    sget v6, Lcom/blankj/utilcode/util/FileIOUtils;->sBufferSize:I

    new-array v6, v6, [B

    .line 171
    .local v6, "data":[B
    :goto_3b
    invoke-virtual {p1, v6}, Ljava/io/InputStream;->read([B)I

    move-result v7

    move v8, v7

    .local v8, "len":I
    if-eq v7, v2, :cond_52

    .line 172
    invoke-virtual {v1, v6, v0, v8}, Ljava/io/OutputStream;->write([BII)V
    :try_end_45
    .catch Ljava/io/IOException; {:try_start_c .. :try_end_45} :catch_67
    .catchall {:try_start_c .. :try_end_45} :catchall_65

    .line 173
    add-int/2addr v5, v8

    .line 174
    int-to-double v9, v5

    invoke-static {v9, v10}, Ljava/lang/Double;->isNaN(D)Z

    invoke-static {v3, v4}, Ljava/lang/Double;->isNaN(D)Z

    div-double/2addr v9, v3

    :try_start_4e
    invoke-interface {p3, v9, v10}, Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;->onProgressUpdate(D)V
    :try_end_51
    .catch Ljava/io/IOException; {:try_start_4e .. :try_end_51} :catch_67
    .catchall {:try_start_4e .. :try_end_51} :catchall_65

    goto :goto_3b

    .line 177
    .end local v3    # "totalSize":D
    .end local v5    # "curSize":I
    .end local v6    # "data":[B
    .end local v8    # "len":I
    :cond_52
    :goto_52
    const/4 v0, 0x1

    .line 183
    :try_start_53
    invoke-virtual {p1}, Ljava/io/InputStream;->close()V
    :try_end_56
    .catch Ljava/io/IOException; {:try_start_53 .. :try_end_56} :catch_57

    .line 186
    goto :goto_5b

    .line 184
    :catch_57
    move-exception v2

    .line 185
    .local v2, "e":Ljava/io/IOException;
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V

    .line 188
    .end local v2    # "e":Ljava/io/IOException;
    :goto_5b
    nop

    .line 189
    :try_start_5c
    invoke-virtual {v1}, Ljava/io/OutputStream;->close()V
    :try_end_5f
    .catch Ljava/io/IOException; {:try_start_5c .. :try_end_5f} :catch_60

    .line 193
    goto :goto_64

    .line 191
    :catch_60
    move-exception v2

    .line 192
    .restart local v2    # "e":Ljava/io/IOException;
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V

    .line 177
    .end local v2    # "e":Ljava/io/IOException;
    :goto_64
    return v0

    .line 182
    :catchall_65
    move-exception v0

    goto :goto_81

    .line 178
    :catch_67
    move-exception v2

    .line 179
    .restart local v2    # "e":Ljava/io/IOException;
    :try_start_68
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
    :try_end_6b
    .catchall {:try_start_68 .. :try_end_6b} :catchall_65

    .line 180
    nop

    .line 183
    :try_start_6c
    invoke-virtual {p1}, Ljava/io/InputStream;->close()V
    :try_end_6f
    .catch Ljava/io/IOException; {:try_start_6c .. :try_end_6f} :catch_70

    .line 186
    goto :goto_74

    .line 184
    :catch_70
    move-exception v3

    .line 185
    .local v3, "e":Ljava/io/IOException;
    invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V

    .line 188
    .end local v3    # "e":Ljava/io/IOException;
    :goto_74
    if-eqz v1, :cond_7f

    .line 189
    :try_start_76
    invoke-virtual {v1}, Ljava/io/OutputStream;->close()V
    :try_end_79
    .catch Ljava/io/IOException; {:try_start_76 .. :try_end_79} :catch_7a

    goto :goto_7f

    .line 191
    :catch_7a
    move-exception v3

    .line 192
    .restart local v3    # "e":Ljava/io/IOException;
    invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_80

    .line 193
    .end local v3    # "e":Ljava/io/IOException;
    :cond_7f
    :goto_7f
    nop

    .line 180
    :goto_80
    return v0

    .line 183
    .end local v2    # "e":Ljava/io/IOException;
    :goto_81
    :try_start_81
    invoke-virtual {p1}, Ljava/io/InputStream;->close()V
    :try_end_84
    .catch Ljava/io/IOException; {:try_start_81 .. :try_end_84} :catch_85

    .line 186
    goto :goto_89

    .line 184
    :catch_85
    move-exception v2

    .line 185
    .restart local v2    # "e":Ljava/io/IOException;
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V

    .line 188
    .end local v2    # "e":Ljava/io/IOException;
    :goto_89
    if-eqz v1, :cond_94

    .line 189
    :try_start_8b
    invoke-virtual {v1}, Ljava/io/OutputStream;->close()V
    :try_end_8e
    .catch Ljava/io/IOException; {:try_start_8b .. :try_end_8e} :catch_8f

    goto :goto_94

    .line 191
    :catch_8f
    move-exception v2

    .line 192
    .restart local v2    # "e":Ljava/io/IOException;
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_95

    .line 193
    .end local v2    # "e":Ljava/io/IOException;
    :cond_94
    :goto_94
    nop

    .line 194
    :goto_95
    throw v0

    .line 157
    .end local v1    # "os":Ljava/io/OutputStream;
    :cond_96
    :goto_96
    return v0
.end method

.method public static writeFileFromIS(Ljava/lang/String;Ljava/io/InputStream;)Z
    .registers 5
    .param p0, "filePath"    # Ljava/lang/String;
    .param p1, "is"    # Ljava/io/InputStream;

    .line 54
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    const/4 v1, 0x0

    const/4 v2, 0x0

    invoke-static {v0, p1, v1, v2}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromIS(Ljava/io/File;Ljava/io/InputStream;ZLcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromIS(Ljava/lang/String;Ljava/io/InputStream;Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z
    .registers 5
    .param p0, "filePath"    # Ljava/lang/String;
    .param p1, "is"    # Ljava/io/InputStream;
    .param p2, "listener"    # Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;

    .line 111
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    const/4 v1, 0x0

    invoke-static {v0, p1, v1, p2}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromIS(Ljava/io/File;Ljava/io/InputStream;ZLcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromIS(Ljava/lang/String;Ljava/io/InputStream;Z)Z
    .registers 5
    .param p0, "filePath"    # Ljava/lang/String;
    .param p1, "is"    # Ljava/io/InputStream;
    .param p2, "append"    # Z

    .line 68
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    const/4 v1, 0x0

    invoke-static {v0, p1, p2, v1}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromIS(Ljava/io/File;Ljava/io/InputStream;ZLcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromIS(Ljava/lang/String;Ljava/io/InputStream;ZLcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z
    .registers 5
    .param p0, "filePath"    # Ljava/lang/String;
    .param p1, "is"    # Ljava/io/InputStream;
    .param p2, "append"    # Z
    .param p3, "listener"    # Lcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;

    .line 127
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    invoke-static {v0, p1, p2, p3}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromIS(Ljava/io/File;Ljava/io/InputStream;ZLcom/blankj/utilcode/util/FileIOUtils$OnProgressUpdateListener;)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromString(Ljava/io/File;Ljava/lang/String;)Z
    .registers 3
    .param p0, "file"    # Ljava/io/File;
    .param p1, "content"    # Ljava/lang/String;

    .line 508
    const/4 v0, 0x0

    invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromString(Ljava/io/File;Ljava/lang/String;Z)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromString(Ljava/io/File;Ljava/lang/String;Z)Z
    .registers 7
    .param p0, "file"    # Ljava/io/File;
    .param p1, "content"    # Ljava/lang/String;
    .param p2, "append"    # Z

    .line 522
    const/4 v0, 0x0

    if-eqz p0, :cond_48

    if-nez p1, :cond_6

    goto :goto_48

    .line 523
    :cond_6
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->createOrExistsFile(Ljava/io/File;)Z

    move-result v1

    if-nez v1, :cond_d

    return v0

    .line 524
    :cond_d
    const/4 v1, 0x0

    .line 526
    .local v1, "bw":Ljava/io/BufferedWriter;
    :try_start_e
    new-instance v2, Ljava/io/BufferedWriter;

    new-instance v3, Ljava/io/FileWriter;

    invoke-direct {v3, p0, p2}, Ljava/io/FileWriter;-><init>(Ljava/io/File;Z)V

    invoke-direct {v2, v3}, Ljava/io/BufferedWriter;-><init>(Ljava/io/Writer;)V

    move-object v1, v2

    .line 527
    invoke-virtual {v1, p1}, Ljava/io/BufferedWriter;->write(Ljava/lang/String;)V
    :try_end_1c
    .catch Ljava/io/IOException; {:try_start_e .. :try_end_1c} :catch_29
    .catchall {:try_start_e .. :try_end_1c} :catchall_27

    .line 528
    const/4 v0, 0x1

    .line 534
    nop

    .line 535
    :try_start_1e
    invoke-virtual {v1}, Ljava/io/BufferedWriter;->close()V
    :try_end_21
    .catch Ljava/io/IOException; {:try_start_1e .. :try_end_21} :catch_22

    .line 539
    goto :goto_26

    .line 537
    :catch_22
    move-exception v2

    .line 538
    .local v2, "e":Ljava/io/IOException;
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V

    .line 528
    .end local v2    # "e":Ljava/io/IOException;
    :goto_26
    return v0

    .line 533
    :catchall_27
    move-exception v0

    goto :goto_3b

    .line 529
    :catch_29
    move-exception v2

    .line 530
    .restart local v2    # "e":Ljava/io/IOException;
    :try_start_2a
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
    :try_end_2d
    .catchall {:try_start_2a .. :try_end_2d} :catchall_27

    .line 531
    nop

    .line 534
    if-eqz v1, :cond_39

    .line 535
    :try_start_30
    invoke-virtual {v1}, Ljava/io/BufferedWriter;->close()V
    :try_end_33
    .catch Ljava/io/IOException; {:try_start_30 .. :try_end_33} :catch_34

    goto :goto_39

    .line 537
    :catch_34
    move-exception v3

    .line 538
    .local v3, "e":Ljava/io/IOException;
    invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_3a

    .line 539
    .end local v3    # "e":Ljava/io/IOException;
    :cond_39
    :goto_39
    nop

    .line 531
    :goto_3a
    return v0

    .line 534
    .end local v2    # "e":Ljava/io/IOException;
    :goto_3b
    if-eqz v1, :cond_46

    .line 535
    :try_start_3d
    invoke-virtual {v1}, Ljava/io/BufferedWriter;->close()V
    :try_end_40
    .catch Ljava/io/IOException; {:try_start_3d .. :try_end_40} :catch_41

    goto :goto_46

    .line 537
    :catch_41
    move-exception v2

    .line 538
    .restart local v2    # "e":Ljava/io/IOException;
    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_47

    .line 539
    .end local v2    # "e":Ljava/io/IOException;
    :cond_46
    :goto_46
    nop

    .line 540
    :goto_47
    throw v0

    .line 522
    .end local v1    # "bw":Ljava/io/BufferedWriter;
    :cond_48
    :goto_48
    return v0
.end method

.method public static writeFileFromString(Ljava/lang/String;Ljava/lang/String;)Z
    .registers 4
    .param p0, "filePath"    # Ljava/lang/String;
    .param p1, "content"    # Ljava/lang/String;

    .line 483
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    const/4 v1, 0x0

    invoke-static {v0, p1, v1}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromString(Ljava/io/File;Ljava/lang/String;Z)Z

    move-result v0

    return v0
.end method

.method public static writeFileFromString(Ljava/lang/String;Ljava/lang/String;Z)Z
    .registers 4
    .param p0, "filePath"    # Ljava/lang/String;
    .param p1, "content"    # Ljava/lang/String;
    .param p2, "append"    # Z

    .line 497
    invoke-static {p0}, Lcom/blankj/utilcode/util/FileIOUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    invoke-static {v0, p1, p2}, Lcom/blankj/utilcode/util/FileIOUtils;->writeFileFromString(Ljava/io/File;Ljava/lang/String;Z)Z

    move-result v0

    return v0
.end method