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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SSH实现远程控制

    SSH(SecureShell)是一种能够提供安全远程登录会话的协议,使用ssh可以在远程linux中执行命令。sshd服务提供两种安全验证的方法:(1)基于口令的安全验证:经过验证帐号与密码即

    2021年12月28日
    45
  • QListWidget「建议收藏」

    QListWidget「建议收藏」QListWidget我们要介绍的第一个是QListWidget。先来看下面的代码示例:12345678910111213141516171819202122232425262728label=newQLabel(this);label->setFixedWidth(70)

    2022年5月3日
    45
  • c++界面开发工具_visual c++界面设计教程

    c++界面开发工具_visual c++界面设计教程亲爱的BCGSoft用户,我们非常高兴地宣布BCGControlBarProfessionalforMFC和BCGSuiteforMFCv30.2正式发布!此版本包含新的Office2019样式可视化主题、改进了Shell控件以及其他一些新功能和改进!本文将为大家介绍v30.2中发布的新功能!让您对BCG最新发布的版本有一个全新的认识和了解。需要最新版的可以点击这里【BCG下载】…

    2022年10月8日
    3
  • Microsoft Office 2007 中文专业版密钥

    Microsoft Office 2007 中文专业版密钥MicrosoftOffice2007中文专业版(微软原版)正版密钥MicrosoftOfficeVisio2007简体中文专业版:简介:    便于IT和商务专业人员就复杂信息、系统和流程进行可视化处理、分析和交流。使用具有专业外观的OfficeVisio2007图表,可以促进对系统和流程的了解,深入了解复杂信息并利用这些知识做出更好的业务决策。迅雷下载    …

    2022年7月19日
    20
  • ECCV 2020 的对抗相关论文(对抗生成、对抗攻击)

    ECCV 2020 的对抗相关论文(对抗生成、对抗攻击)

    2020年11月14日
    234
  • Java静态变量存储在内存中的什么位置?「建议收藏」

    Java静态变量存储在内存中的什么位置?「建议收藏」静态成员变量存储在堆的永久生成区域中。这是因为static不属于对象而是属于类,所以它被认为是类定义的一部分。如果静态变量是基元类型,它们将存储在permGen中。如果静态变量是一个引用变量,例如staticPersonobj=newPerson(),那么reference变量obj将被存储在permGen中,新创建的objected将被放置在年轻一代中。…

    2022年6月12日
    64

发表回复

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

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