码迷,mamicode.com
首页 > 其他好文 > 详细

Go 终端读写 && 文件读写

时间:2019-07-02 00:41:42      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:==   and   eof   ola   缓存   一个   test   str   span   

终端读写

操作终端相关文件句柄常量

  • 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 终端读写 && 文件读写

标签:==   and   eof   ola   缓存   一个   test   str   span   

原文地址:https://www.cnblogs.com/kaichenkai/p/11117574.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!