Android Okio使用

Android Okio使用Okio使用概述Okio是对JavaIO的封装,存储和处理数据变得更加容易。依赖库implementation’com.squareup.okio:okio:2.4.3’基本使用写操作try(BufferedSinksink=Okio.buffer(Okio.sink(newFile(“text.txt”)))){sink.writeInt(65);sink.writeUtf8(“hellookio”);sink.writeUtf8(“安卓”)

大家好,又见面了,我是你们的朋友全栈君。

Okio使用

概述

Okio不是用来完全替代Java IO,Okio本身是基于Java IO,存储和处理数据变得更加容易,Okio的执行效率比Java IO快了很多。

Okio同时也是OkHttp的底层IO库。

依赖库

implementation 'com.squareup.okio:okio:2.4.3'

基本使用

写操作

try (BufferedSink sink = Okio.buffer(Okio.sink(new File("text.txt")))) { 
   
    sink.writeInt(65);
    sink.writeUtf8("hello okio");
    sink.writeUtf8("安卓");
} catch (IOException e) { 
   
    e.printStackTrace();
}

读操作

try (BufferedSource source = Okio.buffer(Okio.source(new File("text.txt")))) { 
   
    String s = source.readUtf8();
    System.out.println(s);
} catch (IOException e) { 
   
    e.printStackTrace();
}

文件复制

try (BufferedSource source = Okio.buffer(Okio.source(new File("text.txt")));
     BufferedSink sink = Okio.buffer(Okio.sink(new File("new_text.txt")))) { 
   
    byte[] bytes = new byte[1024];
    int len;
    while ((len = source.read(bytes)) != -1) { 
   
        sink.write(bytes, 0, len);
    }
} catch (IOException e) { 
   
    e.printStackTrace();
}

等价于

try (BufferedSource bufferedSource = Okio.buffer(Okio.source(new File("text.txt")));
     BufferedSink bufferedSink = Okio.buffer(Okio.sink(new File("new_text.txt")))) { 
   
    bufferedSink.writeAll(bufferedSource);
} catch (IOException e) { 
   
    e.printStackTrace();
}

Gzip

写入数据

try (Sink sink = Okio.sink(new File("text.txt"));
     GzipSink gzipSink = new GzipSink(sink);
     BufferedSink bufferedSink = Okio.buffer(gzipSink)) { 
   

    bufferedSink.writeUtf8("hello");
    bufferedSink.writeUtf8("安卓");

} catch (IOException e) { 
   
    e.printStackTrace();
}

读取数据

try { 
   
    Source source = Okio.source(new File("text.txt"));
    GzipSource gzipSource = new GzipSource(source);
    BufferedSource bufferedSource = Okio.buffer(gzipSource);
    String s = bufferedSource.readUtf8();
    System.out.println(s);

} catch (IOException e) { 
   
    e.printStackTrace();
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/131660.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号