博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件读写
阅读量:4983 次
发布时间:2019-06-12

本文共 2279 字,大约阅读时间需要 7 分钟。

一、文件读取

1. 将整个文件读取到内存中

package mainimport (	"flag"	"fmt"	"io/ioutil")func main() {	//从命令行标记参数中获取文件路径	fptr := flag.String("fpath", "test.txt", "the file path to read from")	flag.Parse()	data, err := ioutil.ReadFile(*fptr)	if err != nil {		fmt.Println("File reading error: ", err)	}	fmt.Println(string(data))}

  

2. 分块读取文件

package mainimport (	"bufio"	"flag"	"fmt"	"io"	"log"	"os")func main() {	fptr := flag.String("fpath", "test.txt", "the file path to read from")	flag.Parse()	f, err := os.Open(*fptr)	if err != nil {		log.Fatal(err)	}	defer func() {		if err := f.Close(); err != nil {			log.Fatal(err)		}	}()	r := bufio.NewReader(f)	b := make([]byte, 10)	for {		_, err := r.Read(b)		if err != nil {			if err == io.EOF {				break			}			log.Fatal(err)		}		fmt.Println(string(b))	}}

  

3. 逐行读取文件

package mainimport (	"bufio"	"flag"	"fmt"	"log"	"os")func main() {	fptr := flag.String("fpath", "test.txt", "the file path to read from")	flag.Parse()	f, err := os.Open(*fptr)	if err != nil {		log.Fatal(err)	}	defer func() {		if err = f.Close(); err != nil {			log.Fatal(err)		}	}()	s := bufio.NewScanner(f)	for s.Scan() {		fmt.Println(s.Text())	}	err = s.Err()	if err != nil {		log.Fatal(err)	}}

  

二、文件写入

1. 将字符串写入文件

package mainimport (	"fmt"	"log"	"os")func main() {	f, err := os.Create("test2.txt")	if err != nil {		log.Fatal(err)	}	defer func() {		if err = f.Close(); err != nil {			log.Fatal(err)		}	}()	l, err := f.WriteString("Hello world")	if err != nil {		log.Fatal(err)	}	fmt.Println(l, " bytes written successfully!")}

  

2. 将字节写入文件

package mainimport (	"fmt"	"log"	"os")func main() {	f, err := os.Create("test2.txt")	if err != nil {		log.Fatal(err)	}	defer func() {		if err = f.Close(); err != nil {			log.Fatal(err)		}	}()	d := []byte{104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100}	l, err := f.Write(d)	if err != nil {		log.Fatal(err)	}	fmt.Println(l, " bytes written successfully!")}

  

3. 追加到文件

package mainimport (	"fmt"	"log"	"os")func main() {	f, err := os.OpenFile("test3.txt", os.O_APPEND|os.O_WRONLY, 0644)	if err != nil {		log.Fatal(err)	}	defer func() {		if err = f.Close(); err != nil {			log.Fatal(err)		}	}()	_, err = fmt.Fprintln(f, "Hello, my name is jet.")	if err != nil {		log.Fatal(err)	}}

  

 

转载于:https://www.cnblogs.com/wujuntian/p/11612987.html

你可能感兴趣的文章
WinRAR(5.21)-0day漏洞-始末分析
查看>>
终端检测HTTPS服务端
查看>>
证件照换底色
查看>>
Candies
查看>>
EAS部署:linux 下安装EAS后启动不了服务
查看>>
[BZOJ3244][NOI2013] 树的计数
查看>>
[web]python3一句话开启http服务
查看>>
基于 控制台 简易 学生信息管理系统 (增、删、改)
查看>>
Cannot add foreign key constraint 错误解决办法
查看>>
To-Read List
查看>>
PHP漏洞全解(三)-客户端脚本植入
查看>>
重载类型运算符
查看>>
poj2676
查看>>
工作时候需要学习的东西
查看>>
Win8安装教程!笔记本用U盘安装Win8只需三步
查看>>
C语言中的字符串常量
查看>>
awk分隔符设定为多个字符或字符串
查看>>
DuoCode测试
查看>>
关于9080端口和80端口实现真正意义的WebServer+ApplicationServer结合应用
查看>>
软件需求分析方法
查看>>