大家好,又见面了,我是你们的朋友全栈君。
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账号...