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)


相关推荐

  • VIM 查找 返回结果个数[通俗易懂]

    VIM 查找 返回结果个数[通俗易懂]:%s/xxx//gn关键是最后的n,代表只报告匹配的个数,而不进行实际的替换。

  • ThreadPoolExcutor(线程池)

    ThreadPoolExcutor(线程池)1、概念:   用于管理java的多线程。线程的生命周期包括创建、就绪、运行、阻塞、销毁,当有大量的线程任务需要创建时,内存的开销就大了,此时,使用线程池,在一定程度上能够很好的缓解线程的大开销。2、优势:    (1)降低资源消耗。通过重复利用已创建的线程降低线程创建、销毁线程造成的消耗。   (2)提高响应速度。当任务到达时,任务可以不需要等到线程

    2022年10月28日
  • 微创业平台

    一种专为大学生创业服务的平台。主旨是,让大学生创业创新,在某种比较简单,比较容易的环境里进行。让大学生创业创新,不要太多的风险,比较容易达成创业目标。云电话,一种5G新电话。特别适合大学生微创业,更需要大学生微创新。将云电话平台,建设成湖铁微创业平台,是深圳云电话平台,与湖铁职院创新创业学院,合作打造的专为湖铁职院大学生,创新创业服务的平台。建设好湖铁微创业平台,具有重大的社会意义。√成功示范作用。先在创新创业学院,打造标杆试点MVP。√便…

  • java对象转换工具类_java json字符串转对象

    java对象转换工具类_java json字符串转对象一、引言json字符串现在是项目中很常用的了,尤其是在写接口返回数据一般都是json格式的。小编最近在看项目中,发现有多处地方用到了java对象转json,但是引用的jar包都是不统一的。常见的有由alibaba提供的fastjson、jackson等等一些二、实现引入jar先,jackSon解析JSON,SpringMVC内置的解析器就是这个。<!–Jacks…

  • vscode golang详细配置(持续更新)_vscode docker

    vscode golang详细配置(持续更新)_vscode docker首先安装golang开发环境,这个不用说。到这个页面下载golang的安装包https://studygolang.com/dl,再安装就可以了。一、下载并安装vscodehttps://code.visualstudio.com/二、安装Go插件在vscode插件中搜索Go的开发插件,安装后如图所示三、下载调试工具使用vscode加载go…

  • 借助栈来实现单链表的逆置运算_中缀后缀表达式互相转换

    借助栈来实现单链表的逆置运算_中缀后缀表达式互相转换原题链接算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运算数中间。请设计程序将中缀表达式转换为后缀表达式。输入格式:输入在一行中给出不含空格的中缀表达式,可包含+、-、*、\以及左右括号(),表达式不超过20个字符。输出格式:在一行中输出转换后的后缀表达式,要求不同对象(运算数、运算符号)之间以空格分隔,但结尾不得有多余空格。输入样例:2+3*(7-4)+8/4输出样例:2 3 7 4 – * + 8 4 / +注意

发表回复

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

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