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();
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2022年4月30日 上午7:00
下一篇 2022年4月30日 上午7:00


相关推荐

  • java缓存处理_清理java缓存

    java缓存处理_清理java缓存 java缓存技术一(转)看一粒沙中的世界,一朵野花中的天堂。把无限握于掌中,把永恒握于瞬间。——威廉•布莱克开始讨论缓存之前,让我们先来讨论讨论另外一个问题:理论和实践.从ahuaxuan接触的程序员来看,有的程序员偏实践,有的程序员偏理论,但是这都是不好的行为,理论和实践同样重要,我们在做很多核心的算法的时候,没有理论根本无从下手,而在我们多年的实践中,不

    2026年4月15日
    5
  • QMap与QHash

    QMap与QHash转载:http://newfaction.net/2010/11/17/qt-qhash-and-qmap-difference.html关联容器可以保存任意多个具有相同类型的项,且它们由一个键索引。Qt提供两个主要的关联容器类:QMap<K,T>和QHash<K,T>。     QMap<K,T>是一个以升序键顺序存储键值对的数据结构…

    2022年5月29日
    37
  • HTML导航条的制作

    HTML导航条的制作导航条的制作HTML代码:<nav>  <ul>    <li>      <ahref=”#”></a>    </li>    <li>      <ahref=”#”></a>    </li>  </ul></na…

    2022年7月22日
    9
  • css两端对齐

    css两端对齐两端对齐在导航 Nav 的制作中非常常用 例子例如下面这个例子 在导航栏中 我们希望左边的 nav 文字左端对齐 右边的 button 有段对齐 并且导航栏部分居中 和上边 banner 中的文字 以及下边的内容居中对齐 概念 flex 弹性盒模型 flex 作为强大的弹性布局方式 可以 hold 住大部分的布局效果 当然也包括两端对齐 可以使用主轴对齐 justify content 的两端对齐属性 space between display flex 应用 flex 布局 justify content space be

    2026年3月20日
    2
  • 0X80000000(8007000b)

    给int类型赋值的话,0X7FFFFFFF代表最大值,0X80000000代表最小值@NativepublicstaticfinalintMIN_VALUE=0x80000000;@NativepublicstaticfinalintMAX_VALUE=0x7fffffff;publicclasstest1{ publicstaticvoid…

    2022年4月15日
    66
  • 【转载】使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结

    【转载】使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结

    2021年11月18日
    64

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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