面试题答案
一键面试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("处理完成")
}
说明:
- 首先使用
ioutil.ReadFile
读取input.txt
文件内容,如果读取失败打印错误并返回。 - 使用
strings.Split
按行分割读取到的内容。 - 对每一行内容进行反转,这里通过将字符串转为
rune
切片进行字符位置交换实现反转。 - 将反转后的内容拼接并写入到
output.txt
文件中,如果写入失败打印错误并返回。最后提示处理完成。
请确保在运行程序的目录下有 input.txt
文件,并且程序有写入 output.txt
文件的权限。