美文网首页
okio简单使用

okio简单使用

作者: QM | 来源:发表于2020-03-05 17:29 被阅读0次
  • 文件读写
try{
  File file = new File(getApplicationContext().getFilesDir().getPath().toString() +"/file.text");
  if(!file.exists()) {
    file.createNewFile();
  }
  //写
  BufferedSink sink = Okio.buffer(Okio.sink(file));
  sink.writeUtf8("hello ,OKIO");
  sink.flush();
  sink.close();

  //读
  BufferedSource source = Okio.buffer(Okio.source(file));
  Log.e(TAG,"OKIO: "+ source.readUtf8());
  source.close();

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

  • OKIO sink 和source接口,Sink代表的输出流,Source代表的是输入流


    image.png
  • OKIO sink 和source实现类


    image.png
  • Okio这个库的优势,

ByteString不仅是不可变的,同时在内部有两个filed,分别是byte数据,以及String的数据,这样能够让这个类在Byte和String转换上基本没有开销,同样的也需要保存两份引用,这是明显的空间换时间的方式,为了性能Okio做了很多的事情。

1)快,Okio采取了空间换时间的方式比如Segment(双向循环链表)和ByteString之类的存在来让IO操作尽可能不成为整个系统的瓶颈,虽然采取这种方式但是在内存上也是极致的优化,使用的片段共享以及整体的读写共享来加快大字节数组的读写,
2) 稳定,Okio提供了超时机制,不仅在IO操作上加上超时的判定,包括close,flush之类的方法中都有超时机制,这让上层不会错过一个可能导致系统崩溃的超时异常,
3)方便,Sink,Source两个包装了写和读,区别于传统的IO各种不同的输入输出流,这里只有一种而且支持socket,十分的方便。当然Okio还有很多其他的好处,易于扩展,代码量小易于阅读等。

参考
https://www.jianshu.com/p/f033a64539a1
https://www.jianshu.com/p/cbbe67474581

相关文章

  • okio简单使用

    文件读写 OKIO sink 和source接口,Sink代表的输出流,Source代表的是输入流image.pn...

  • okio解析

    使用okhttp的时候,看过源码会知道,里面是使用了okio对流进行处理,那么okio到底是什么?okio 同样也...

  • Okio 源码分析

    Okio 源码分析 Okio , Java, Java IO OkIo 是 OKHTTP 中使用的 一个 IO的框...

  • Okio源码分析

    1. 简单关系结构 在okio中,使用Source/Sink接口替代in/outputstream; 先看一下简单...

  • NIO 原理分析、Okio 简单使用

    NIO 与 传统IO 的区别 传统IO:用的是插管道(单向管道 stream)。可以先了解一下 传统IO Java...

  • Android下的IO库-Okio源码解析(贰)

    上一章,我们简单使用了一下Okio来读取了一个png文件,本章将以上一章的例子,以读取为入口来剖析一下Okio在读...

  • Okio简单分析

    Okio的传送门 https://github.com/square/okio 了解Okio之前先了解一个装饰者模...

  • OkIO简单学习

    参考:http://square.github.io/okio/1.x/okio/ 1、引用 compile 'c...

  • OkHttp 4源码(6)— Okio源码解析

    本文基于Okio 2.4.3源码分析Okio - 官方地址Okio - GitHub代码地址 Okio 介绍 Ok...

  • 使用okhttp3报错:"java.lang.NoCl

    使用okhttp3,运行简单例程后报错如图报错 其实是少了个依赖包 okio 1.下载:https://repo1...

网友评论

      本文标题:okio简单使用

      本文链接:https://www.haomeiwen.com/subject/nzdqrhtx.html