MST

星途 面试题库

面试题:Go中文件读写操作

请用Go语言编写一个程序,实现从一个文本文件中读取内容,并将读取到的内容按行处理,将每行内容反转后写入到另一个文件中。要求处理可能出现的文件操作错误。
37.0万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "fmt"
    "io/ioutil"
    "os"
    "strings"
)

func main() {
    // 读取文件内容
    data, err := ioutil.ReadFile("input.txt")
    if err != nil {
        fmt.Printf("读取文件失败: %v\n", err)
        return
    }

    lines := strings.Split(string(data), "\n")
    var result strings.Builder
    for _, line := range lines {
        // 反转每行内容
        runes := []rune(line)
        for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
            runes[i], runes[j] = runes[j], runes[i]
        }
        result.WriteString(string(runes))
        result.WriteByte('\n')
    }

    // 写入到另一个文件
    err = ioutil.WriteFile("output.txt", []byte(result.String()), 0644)
    if err != nil {
        fmt.Printf("写入文件失败: %v\n", err)
        return
    }
    fmt.Println("处理完成")
}

说明:

  1. 首先使用 ioutil.ReadFile 读取 input.txt 文件内容,如果读取失败打印错误并返回。
  2. 使用 strings.Split 按行分割读取到的内容。
  3. 对每一行内容进行反转,这里通过将字符串转为 rune 切片进行字符位置交换实现反转。
  4. 将反转后的内容拼接并写入到 output.txt 文件中,如果写入失败打印错误并返回。最后提示处理完成。

请确保在运行程序的目录下有 input.txt 文件,并且程序有写入 output.txt 文件的权限。