Go 终端读写 && 文件读写
Posted kaichenkai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go 终端读写 && 文件读写相关的知识,希望对你有一定的参考价值。
终端读写
操作终端相关文件句柄常量
- os.Stdin(standard):标准输入
- os.Stdout:标准输出
- os.Stderr:标准错误输出
标准输出
demo:直接输出和 判断之后输出的结果不一致
func main() //标准输出接口, 格式, 需要格式化的内容 fmt.Fprintf(os.Stdout, "%s\n", "hello world ~") fmt.Fprintln(os.Stdout, "hello, world ~") 运行结果: hello world ~ hello, world ~
标准输入
package main import ( "fmt" ) var ( firstName, lastName string age, salary int ) func main() //从键盘获取string类型赋值给fistName fmt.Scanf("%s", &firstName) //将字符串赋值给lastName, 中间不能空格 fmt.Sscan("helloworld", &lastName) //将一个字符串按照指定格式赋值给变量 fmt.Sscanf("18-3000", "%d-%d", &age, &salary) fmt.Printf("%s\n%s\n%d\n%d", firstName, lastName, age, salary) 运行结果: "holle go" //手动输入,有空格不行 "holle helloworld 18 3000
带缓存的输出
package main import ( "bufio" "fmt" "os" ) func main() //先得到*Write缓存 buf := bufio.NewWriter(os.Stdout) //标准输出接口, 格式, 需要格式化的内容 fmt.Fprintf(buf, "%s\n", "hello world ~") fmt.Fprintln(buf, "hello, world ~") buf.Flush() 运行结果: hello world ~ hello, world ~
带缓存的输入
package main import ( "bufio" "fmt" "os" ) func main() buf := bufio.NewReader(os.Stdin) input, err := buf.ReadString(‘\n‘) //delim 定界符 if err == nil fmt.Println(input) 运行结果: hello world //手动输入 hello world
文件读写
os.File 封装了文件相关的操作,前面提到的 os.Stdin,os.Stdout,os.Stderr 都是 *os.File
- 打开一个文件进行读操作:os.Open(filePath string) (*File, error)
- 关闭一个文件:File.Close()
读取一个文件
package main import ( "bufio" "fmt" "io" "os" ) func readFile() readFile, err := os.Open("D:\\golang_workspace\\project\\src\\godev\\终端读写 && 文件读写\\05_读取一个文件\\test.txt") if err != nil fmt.Println("open file failed, err is %v", err) defer readFile.Close() fileReader := bufio.NewReader(readFile) for line, err := fileReader.ReadString(‘\n‘) if err == io.EOF break fmt.Print(line) func main() readFile() 运行结果: 。。。
以上是关于Go 终端读写 && 文件读写的主要内容,如果未能解决你的问题,请参考以下文章
Golang✔️走进 Go 语言✔️ 第二十二课 json & 文件读写