aboutsummaryrefslogtreecommitdiff
path: root/samples/src/jvmMain
diff options
context:
space:
mode:
Diffstat (limited to 'samples/src/jvmMain')
-rw-r--r--samples/src/jvmMain/java/okio/samples/BitmapEncoder.java9
-rw-r--r--samples/src/jvmMain/java/okio/samples/Hashing.java21
-rw-r--r--samples/src/jvmMain/java/okio/samples/ReadFileLineByLine.java9
-rw-r--r--samples/src/jvmMain/java/okio/samples/ReadFileLineByLine.kt40
-rw-r--r--samples/src/jvmMain/java/okio/samples/ReadJavaIoFileLineByLine.java48
-rw-r--r--samples/src/jvmMain/java/okio/samples/WriteFile.java9
-rw-r--r--samples/src/jvmMain/java/okio/samples/WriteJavaIoFile.java47
-rw-r--r--samples/src/jvmMain/kotlin/okio/samples/BitmapEncoder.kt18
-rw-r--r--samples/src/jvmMain/kotlin/okio/samples/ExploreCharsets.kt2
-rw-r--r--samples/src/jvmMain/kotlin/okio/samples/GoldenValue.kt8
-rw-r--r--samples/src/jvmMain/kotlin/okio/samples/Hashing.kt29
-rw-r--r--samples/src/jvmMain/kotlin/okio/samples/ReadJavaIoFileLineByLine.kt (renamed from samples/src/jvmMain/kotlin/okio/samples/ReadFileLineByLine.kt)4
-rw-r--r--samples/src/jvmMain/kotlin/okio/samples/SocksProxyServer.kt16
-rw-r--r--samples/src/jvmMain/kotlin/okio/samples/WriteFile.kt13
-rw-r--r--samples/src/jvmMain/kotlin/okio/samples/WriteJavaIoFile.kt37
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"))
+}