diff options
Diffstat (limited to 'samples/src/jvmMain')
15 files changed, 245 insertions, 65 deletions
diff --git a/samples/src/jvmMain/java/okio/samples/BitmapEncoder.java b/samples/src/jvmMain/java/okio/samples/BitmapEncoder.java index a505f6dc..8642170e 100644 --- a/samples/src/jvmMain/java/okio/samples/BitmapEncoder.java +++ b/samples/src/jvmMain/java/okio/samples/BitmapEncoder.java @@ -15,10 +15,11 @@ */ package okio.samples; -import java.io.File; import java.io.IOException; import okio.BufferedSink; +import okio.FileSystem; import okio.Okio; +import okio.Path; public final class BitmapEncoder { static final class Bitmap { @@ -66,8 +67,8 @@ public final class BitmapEncoder { return new Bitmap(pixels); } - void encode(Bitmap bitmap, File file) throws IOException { - try (BufferedSink sink = Okio.buffer(Okio.sink(file))) { + void encode(Bitmap bitmap, FileSystem fileSystem, Path path) throws IOException { + try (BufferedSink sink = Okio.buffer(fileSystem.sink(path))) { encode(bitmap, sink); } } @@ -122,6 +123,6 @@ public final class BitmapEncoder { public static void main(String[] args) throws Exception { BitmapEncoder encoder = new BitmapEncoder(); Bitmap bitmap = encoder.generateGradient(); - encoder.encode(bitmap, new File("gradient.bmp")); + encoder.encode(bitmap, FileSystem.SYSTEM, Path.get("gradient.bmp")); } } diff --git a/samples/src/jvmMain/java/okio/samples/Hashing.java b/samples/src/jvmMain/java/okio/samples/Hashing.java index 0f2b4474..66d99ba6 100644 --- a/samples/src/jvmMain/java/okio/samples/Hashing.java +++ b/samples/src/jvmMain/java/okio/samples/Hashing.java @@ -15,23 +15,24 @@ */ package okio.samples; -import java.io.File; import java.io.IOException; import okio.Buffer; import okio.BufferedSink; import okio.BufferedSource; import okio.ByteString; +import okio.FileSystem; import okio.HashingSink; import okio.HashingSource; import okio.Okio; +import okio.Path; import okio.Source; public final class Hashing { public void run() throws Exception { - File file = new File("../README.md"); + Path path = Path.get("../README.md"); System.out.println("ByteString"); - ByteString byteString = readByteString(file); + ByteString byteString = readByteString(path); System.out.println(" md5: " + byteString.md5().hex()); System.out.println(" sha1: " + byteString.sha1().hex()); System.out.println(" sha256: " + byteString.sha256().hex()); @@ -39,7 +40,7 @@ public final class Hashing { System.out.println(); System.out.println("Buffer"); - Buffer buffer = readBuffer(file); + Buffer buffer = readBuffer(path); System.out.println(" md5: " + buffer.md5().hex()); System.out.println(" sha1: " + buffer.sha1().hex()); System.out.println(" sha256: " + buffer.sha256().hex()); @@ -47,7 +48,7 @@ public final class Hashing { System.out.println(); System.out.println("HashingSource"); - try (HashingSource hashingSource = HashingSource.sha256(Okio.source(file)); + try (HashingSource hashingSource = HashingSource.sha256(FileSystem.SYSTEM.source(path)); BufferedSource source = Okio.buffer(hashingSource)) { source.readAll(Okio.blackhole()); System.out.println(" sha256: " + hashingSource.hash().hex()); @@ -57,7 +58,7 @@ public final class Hashing { System.out.println("HashingSink"); try (HashingSink hashingSink = HashingSink.sha256(Okio.blackhole()); BufferedSink sink = Okio.buffer(hashingSink); - Source source = Okio.source(file)) { + Source source = FileSystem.SYSTEM.source(path)) { sink.writeAll(source); sink.close(); // Emit anything buffered. System.out.println(" sha256: " + hashingSink.hash().hex()); @@ -70,14 +71,14 @@ public final class Hashing { System.out.println(); } - public ByteString readByteString(File file) throws IOException { - try (BufferedSource source = Okio.buffer(Okio.source(file))) { + public ByteString readByteString(Path path) throws IOException { + try (BufferedSource source = Okio.buffer(FileSystem.SYSTEM.source(path))) { return source.readByteString(); } } - public Buffer readBuffer(File file) throws IOException { - try (Source source = Okio.source(file)) { + public Buffer readBuffer(Path path) throws IOException { + try (Source source = FileSystem.SYSTEM.source(path)) { Buffer buffer = new Buffer(); buffer.writeAll(source); return buffer; diff --git a/samples/src/jvmMain/java/okio/samples/ReadFileLineByLine.java b/samples/src/jvmMain/java/okio/samples/ReadFileLineByLine.java index b195a513..010319ef 100644 --- a/samples/src/jvmMain/java/okio/samples/ReadFileLineByLine.java +++ b/samples/src/jvmMain/java/okio/samples/ReadFileLineByLine.java @@ -15,19 +15,20 @@ */ package okio.samples; -import java.io.File; import java.io.IOException; import okio.BufferedSource; +import okio.FileSystem; import okio.Okio; +import okio.Path; import okio.Source; public final class ReadFileLineByLine { public void run() throws Exception { - readLines(new File("../README.md")); + readLines(Path.get("../README.md")); } - public void readLines(File file) throws IOException { - try (Source fileSource = Okio.source(file); + public void readLines(Path path) throws IOException { + try (Source fileSource = FileSystem.SYSTEM.source(path); BufferedSource bufferedFileSource = Okio.buffer(fileSource)) { while (true) { diff --git a/samples/src/jvmMain/java/okio/samples/ReadFileLineByLine.kt b/samples/src/jvmMain/java/okio/samples/ReadFileLineByLine.kt new file mode 100644 index 00000000..8dd573a6 --- /dev/null +++ b/samples/src/jvmMain/java/okio/samples/ReadFileLineByLine.kt @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2018 Square, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package okio.samples + +import okio.FileSystem +import okio.IOException +import okio.Path +import okio.Path.Companion.toPath +import okio.buffer + +@Throws(IOException::class) +fun readLines(path: Path) { + FileSystem.SYSTEM.source(path).use { fileSource -> + fileSource.buffer().use { bufferedFileSource -> + while (true) { + val line = bufferedFileSource.readUtf8Line() ?: break + if ("square" in line) { + println(line) + } + } + } + } +} + +fun main() { + readLines("../README.md".toPath()) +} diff --git a/samples/src/jvmMain/java/okio/samples/ReadJavaIoFileLineByLine.java b/samples/src/jvmMain/java/okio/samples/ReadJavaIoFileLineByLine.java new file mode 100644 index 00000000..6479524d --- /dev/null +++ b/samples/src/jvmMain/java/okio/samples/ReadJavaIoFileLineByLine.java @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2018 Square, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package okio.samples; + +import java.io.File; +import java.io.IOException; +import okio.BufferedSource; +import okio.Okio; +import okio.Source; + +public final class ReadJavaIoFileLineByLine { + public void run() throws Exception { + readLines(new File("../README.md")); + } + + public void readLines(File file) throws IOException { + try (Source fileSource = Okio.source(file); + BufferedSource bufferedFileSource = Okio.buffer(fileSource)) { + + while (true) { + String line = bufferedFileSource.readUtf8Line(); + if (line == null) break; + + if (line.contains("square")) { + System.out.println(line); + } + } + + } + } + + public static void main(String... args) throws Exception { + new ReadJavaIoFileLineByLine().run(); + } +} diff --git a/samples/src/jvmMain/java/okio/samples/WriteFile.java b/samples/src/jvmMain/java/okio/samples/WriteFile.java index e613abe5..c71e912a 100644 --- a/samples/src/jvmMain/java/okio/samples/WriteFile.java +++ b/samples/src/jvmMain/java/okio/samples/WriteFile.java @@ -15,20 +15,21 @@ */ package okio.samples; -import java.io.File; import java.io.IOException; import java.util.Map; import okio.BufferedSink; +import okio.FileSystem; import okio.Okio; +import okio.Path; import okio.Sink; public final class WriteFile { public void run() throws Exception { - writeEnv(new File("env.txt")); + writeEnv(Path.get("env.txt")); } - public void writeEnv(File file) throws IOException { - try (Sink fileSink = Okio.sink(file); + public void writeEnv(Path path) throws IOException { + try (Sink fileSink = FileSystem.SYSTEM.sink(path); BufferedSink bufferedSink = Okio.buffer(fileSink)) { for (Map.Entry<String, String> entry : System.getenv().entrySet()) { diff --git a/samples/src/jvmMain/java/okio/samples/WriteJavaIoFile.java b/samples/src/jvmMain/java/okio/samples/WriteJavaIoFile.java new file mode 100644 index 00000000..d2b0502a --- /dev/null +++ b/samples/src/jvmMain/java/okio/samples/WriteJavaIoFile.java @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2018 Square, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package okio.samples; + +import java.io.File; +import java.io.IOException; +import java.util.Map; +import okio.BufferedSink; +import okio.Okio; +import okio.Sink; + +public final class WriteJavaIoFile { + public void run() throws Exception { + writeEnv(new File("env.txt")); + } + + public void writeEnv(File file) throws IOException { + try (Sink fileSink = Okio.sink(file); + BufferedSink bufferedSink = Okio.buffer(fileSink)) { + + for (Map.Entry<String, String> entry : System.getenv().entrySet()) { + bufferedSink.writeUtf8(entry.getKey()); + bufferedSink.writeUtf8("="); + bufferedSink.writeUtf8(entry.getValue()); + bufferedSink.writeUtf8("\n"); + } + + } + } + + public static void main(String... args) throws Exception { + new WriteFile().run(); + } +} diff --git a/samples/src/jvmMain/kotlin/okio/samples/BitmapEncoder.kt b/samples/src/jvmMain/kotlin/okio/samples/BitmapEncoder.kt index 86422832..e23b3261 100644 --- a/samples/src/jvmMain/kotlin/okio/samples/BitmapEncoder.kt +++ b/samples/src/jvmMain/kotlin/okio/samples/BitmapEncoder.kt @@ -15,16 +15,16 @@ */ package okio.samples -import okio.BufferedSink -import okio.buffer -import okio.sink -import java.io.File -import java.io.IOException import kotlin.math.hypot +import okio.BufferedSink +import okio.FileSystem +import okio.IOException +import okio.Path +import okio.Path.Companion.toPath class KotlinBitmapEncoder { class Bitmap( - private val pixels: Array<IntArray> + private val pixels: Array<IntArray>, ) { val width: Int = pixels[0].size val height: Int = pixels.size @@ -54,8 +54,8 @@ class KotlinBitmapEncoder { } @Throws(IOException::class) - fun encode(bitmap: Bitmap, file: File) { - file.sink().buffer().use { sink -> encode(bitmap, sink) } + fun encode(bitmap: Bitmap, fileSystem: FileSystem, path: Path) { + fileSystem.write(path) { encode(bitmap, this) } } /** https://en.wikipedia.org/wiki/BMP_file_format */ @@ -109,5 +109,5 @@ class KotlinBitmapEncoder { fun main() { val encoder = KotlinBitmapEncoder() val bitmap = encoder.generateGradient() - encoder.encode(bitmap, File("gradient.bmp")) + encoder.encode(bitmap, FileSystem.SYSTEM, "gradient.bmp".toPath()) } diff --git a/samples/src/jvmMain/kotlin/okio/samples/ExploreCharsets.kt b/samples/src/jvmMain/kotlin/okio/samples/ExploreCharsets.kt index 824a01ed..18744831 100644 --- a/samples/src/jvmMain/kotlin/okio/samples/ExploreCharsets.kt +++ b/samples/src/jvmMain/kotlin/okio/samples/ExploreCharsets.kt @@ -15,9 +15,9 @@ */ package okio.samples +import java.io.IOException import okio.ByteString.Companion.encodeUtf8 import okio.utf8Size -import java.io.IOException @Throws(IOException::class) fun dumpStringData(s: String) { diff --git a/samples/src/jvmMain/kotlin/okio/samples/GoldenValue.kt b/samples/src/jvmMain/kotlin/okio/samples/GoldenValue.kt index 2e86ff74..aeb5aeca 100644 --- a/samples/src/jvmMain/kotlin/okio/samples/GoldenValue.kt +++ b/samples/src/jvmMain/kotlin/okio/samples/GoldenValue.kt @@ -15,13 +15,13 @@ */ package okio.samples -import okio.Buffer -import okio.ByteString -import okio.ByteString.Companion.decodeBase64 import java.io.IOException import java.io.ObjectInputStream import java.io.ObjectOutputStream import java.io.Serializable +import okio.Buffer +import okio.ByteString +import okio.ByteString.Companion.decodeBase64 class KotlinGoldenValue { fun run() { @@ -60,7 +60,7 @@ class KotlinGoldenValue { private fun assertEquals( a: Point, - b: Point + b: Point, ) { if (a.x != b.x || a.y != b.y) throw AssertionError() } diff --git a/samples/src/jvmMain/kotlin/okio/samples/Hashing.kt b/samples/src/jvmMain/kotlin/okio/samples/Hashing.kt index 3169d4e1..1584d8b4 100644 --- a/samples/src/jvmMain/kotlin/okio/samples/Hashing.kt +++ b/samples/src/jvmMain/kotlin/okio/samples/Hashing.kt @@ -15,23 +15,24 @@ */ package okio.samples +import java.io.IOException import okio.Buffer import okio.ByteString import okio.ByteString.Companion.decodeHex +import okio.FileSystem import okio.HashingSink.Companion.sha256 import okio.HashingSource.Companion.sha256 +import okio.Path +import okio.Path.Companion.toPath import okio.blackholeSink import okio.buffer -import okio.source -import java.io.File -import java.io.IOException class KotlinHashing { fun run() { - val file = File("../README.md") + val path = "../README.md".toPath() println("ByteString") - val byteString = readByteString(file) + val byteString = readByteString(path) println(" md5: " + byteString.md5().hex()) println(" sha1: " + byteString.sha1().hex()) println(" sha256: " + byteString.sha256().hex()) @@ -39,7 +40,7 @@ class KotlinHashing { println() println("Buffer") - val buffer = readBuffer(file) + val buffer = readBuffer(path) println(" md5: " + buffer.md5().hex()) println(" sha1: " + buffer.sha1().hex()) println(" sha256: " + buffer.sha256().hex()) @@ -47,7 +48,7 @@ class KotlinHashing { println() println("HashingSource") - sha256(file.source()).use { hashingSource -> + sha256(FileSystem.SYSTEM.source(path)).use { hashingSource -> hashingSource.buffer().use { source -> source.readAll(blackholeSink()) println(" sha256: " + hashingSource.hash.hex()) @@ -58,7 +59,7 @@ class KotlinHashing { println("HashingSink") sha256(blackholeSink()).use { hashingSink -> hashingSink.buffer().use { sink -> - file.source().use { source -> + FileSystem.SYSTEM.source(path).use { source -> sink.writeAll(source) sink.close() // Emit anything buffered. println(" sha256: " + hashingSink.hash.hex()) @@ -74,14 +75,16 @@ class KotlinHashing { } @Throws(IOException::class) - fun readByteString(file: File): ByteString { - return file.source().buffer().use { it.readByteString() } + fun readByteString(path: Path): ByteString { + return FileSystem.SYSTEM.read(path) { readByteString() } } @Throws(IOException::class) - fun readBuffer(file: File): Buffer { - return file.source().use { source -> - Buffer().also { it.writeAll(source) } + fun readBuffer(path: Path): Buffer { + FileSystem.SYSTEM.read(path) { + val result = Buffer() + readAll(result) + return result } } } diff --git a/samples/src/jvmMain/kotlin/okio/samples/ReadFileLineByLine.kt b/samples/src/jvmMain/kotlin/okio/samples/ReadJavaIoFileLineByLine.kt index b3fa31ba..05cdd6d3 100644 --- a/samples/src/jvmMain/kotlin/okio/samples/ReadFileLineByLine.kt +++ b/samples/src/jvmMain/kotlin/okio/samples/ReadJavaIoFileLineByLine.kt @@ -15,10 +15,10 @@ */ package okio.samples -import okio.buffer -import okio.source import java.io.File import java.io.IOException +import okio.buffer +import okio.source @Throws(IOException::class) fun readLines(file: File) { diff --git a/samples/src/jvmMain/kotlin/okio/samples/SocksProxyServer.kt b/samples/src/jvmMain/kotlin/okio/samples/SocksProxyServer.kt index d3b786a1..f68811b9 100644 --- a/samples/src/jvmMain/kotlin/okio/samples/SocksProxyServer.kt +++ b/samples/src/jvmMain/kotlin/okio/samples/SocksProxyServer.kt @@ -15,13 +15,6 @@ */ package okio.samples -import okio.Buffer -import okio.BufferedSink -import okio.Sink -import okio.Source -import okio.buffer -import okio.sink -import okio.source import java.io.IOException import java.net.InetAddress import java.net.InetSocketAddress @@ -33,6 +26,13 @@ import java.net.URL import java.util.Collections import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.Executors +import okio.Buffer +import okio.BufferedSink +import okio.Sink +import okio.Source +import okio.buffer +import okio.sink +import okio.source private const val VERSION_5 = 5 private const val METHOD_NO_AUTHENTICATION_REQUIRED = 0 @@ -64,7 +64,7 @@ class KotlinSocksProxyServer { fun proxy(): Proxy = Proxy( Proxy.Type.SOCKS, - InetSocketAddress.createUnresolved("localhost", serverSocket.localPort) + InetSocketAddress.createUnresolved("localhost", serverSocket.localPort), ) private fun acceptSockets() { diff --git a/samples/src/jvmMain/kotlin/okio/samples/WriteFile.kt b/samples/src/jvmMain/kotlin/okio/samples/WriteFile.kt index 56726932..516e9f67 100644 --- a/samples/src/jvmMain/kotlin/okio/samples/WriteFile.kt +++ b/samples/src/jvmMain/kotlin/okio/samples/WriteFile.kt @@ -15,14 +15,15 @@ */ package okio.samples +import okio.FileSystem +import okio.IOException +import okio.Path +import okio.Path.Companion.toPath import okio.buffer -import okio.sink -import java.io.File -import java.io.IOException @Throws(IOException::class) -fun writeEnv(file: File) { - file.sink().buffer().use { sink -> +fun writeEnv(path: Path) { + FileSystem.SYSTEM.sink(path).buffer().use { sink -> for ((key, value) in System.getenv()) { sink.writeUtf8(key) sink.writeUtf8("=") @@ -33,5 +34,5 @@ fun writeEnv(file: File) { } fun main() { - writeEnv(File("env.txt")) + writeEnv("env.txt".toPath()) } diff --git a/samples/src/jvmMain/kotlin/okio/samples/WriteJavaIoFile.kt b/samples/src/jvmMain/kotlin/okio/samples/WriteJavaIoFile.kt new file mode 100644 index 00000000..9981462a --- /dev/null +++ b/samples/src/jvmMain/kotlin/okio/samples/WriteJavaIoFile.kt @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2018 Square, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package okio.samples + +import java.io.File +import java.io.IOException +import okio.buffer +import okio.sink + +@Throws(IOException::class) +fun writeEnv(file: File) { + file.sink().buffer().use { sink -> + for ((key, value) in System.getenv()) { + sink.writeUtf8(key) + sink.writeUtf8("=") + sink.writeUtf8(value) + sink.writeUtf8("\n") + } + } +} + +fun main() { + writeEnv(File("env.txt")) +} |