移动端六大语言速记:第7部分 - 文件与输入输出(I/O)

移动端六大语言速记:第7部分 - 文件与输入输出(I/O)

本文将对比Java、Kotlin、Flutter(Dart)、Python、ArkTS和Swift这六种移动端开发语言在文件与输入输出(I/O)方面的特性,帮助开发者理解和掌握各语言的I/O操作机制。

7. 文件与输入输出(I/O)

7.1 文件读写

各语言文件读写的语法对比:

语言 文本文件读取 文本文件写入 二进制文件读取 二进制文件写入
Java Files.readString(), BufferedReader Files.writeString(), BufferedWriter FileInputStream FileOutputStream
Kotlin File.readText(), File.readLines() File.writeText(), File.writeLines() File.inputStream() File.outputStream()
Dart File.readAsString(), File.readAsLines() File.writeAsString(), File.writeAsBytes() File.readAsBytes() File.writeAsBytes()
Python open().read(), open().readlines() open().write(), open().writelines() open(mode='rb') open(mode='wb')
ArkTS readFile(), readTextFile() writeFile(), writeTextFile() readArrayBuffer() writeArrayBuffer()
Swift String(contentsOfFile:) write(toFile:) Data(contentsOf:) write(to:)
示例对比

Java:

// 文本文件读写
import java.nio.file.*;
import java.io.*;

// 读取文本文件
try {
   
    String content = Files.readString(Path.of("example.txt"));
    System.out.println(content);
    
    // 使用BufferedReader逐行读取
    try (BufferedReader reader = Files.newBufferedReader(Path.of("example.txt"))) {
   
        String line;
        while ((line = reader.readLine()) != null) {
   
            System.out.println(line);
        }
    }
} catch (IOException e) {
   
    e.printStackTrace();
}

// 写入文本文件
try {
   
    Files.writeString(Path.of("output.txt"), "Hello, World!");
    
    // 使用BufferedWriter写入多行
    try (BufferedWriter writer = Files.newBufferedWriter(Path.of("output.txt"))) {
   
        writer.write("Line 1\n");
        writer.write("Line 2\n");
    }
} catch (IOException e) {
   
    e.printStackTrace();
}

// 二进制文件读写
try {
   
    // 读取二进制文件
    byte[] bytes = Files.readAllBytes(Path.of("example.bin"));
    
    // 写入二进制文件
    Files.write(Path.of("output.bin"), bytes);
} catch (IOException e) {
   
    e.printStackTrace();
}

Kotlin:

import java.io.File

// 文本文件读写
try {
   
    // 读取整个文件
    val content = File("example.txt").readText()
    println(content)
    
    // 逐行读取
    File("example.txt").forEachLine {
    line ->
        println(line)
    }
    
    // 读取所有行
    val lines = File("example.txt").readLines()
    lines.forEach {
    println(it) }
    
    // 写入文本
    File("output.txt").writeText("Hello, World!")
    
    // 写入多行
    File("output.txt").writeLines(listOf("Line 1", "Line 2"))
} catch (e: Exception) {
   
    e.printStackTrace()
}

// 二进制文件读写
try {
   
    // 读取二进制文件
    val bytes = File("example.bin").readBytes()
    
    // 写入二进制文件
    File("output.bin").writeBytes(bytes)
} catch (e: Exception) {
   
    e.printStackTrace()
}

Dart:

import 'dart:io';

// 文本文件读写
Future<void> fileOperations() async {
   
  try {
   
    // 读取整个文件
    String content = await File('example.txt').readAsString();
    print(content);
    
    // 逐行读取
    List<String> lines = await File('example.txt').readAsLines();
    lines.forEach(print);
    
    // 写入文本
    await File('output.txt').writeAsString('Hello, World!');
    
    // 写入多行
    await File('output.txt').writeAsString('Line 1\nLine 2\n');
  } catch (e) {
   
    print('Error: $e');
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

键盘小码哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值