一、读写数据
1、读取用户的输入

使用fmt 包提供的 Scan 和 Sscan 开头的函数;

* Scanln 扫描来自标准输入的文本,将空格分隔的值依次存放到后续的参数内,直到碰到换行。
* Scanf 与其类似,除了 Scanf 的第一个参数用作格式字符串,用来决定如何读取。
* Sscan 和以 Sscan 开头的函数则是从字符串读取,除此之外,与 Scanf 相同。

bufio 包提供的缓冲读取(buffered reader)来读取数据

inputReader := bufio.NewReader(os.Stdin)
input, err := inputReader.ReadString('\n')
2、读文件

循环读写每一行:

 inputFile, inputError := os.Open("input.dat")defer inputFile.Close()inputReader := bufio.NewReader(inputFile)for {inputString, readerError := inputReader.ReadString('\n')fmt.Printf("The input was: %s", inputString)if readerError == io.EOF {return}      }

说明:

* inputFile 是 *os.File 类型的,表示一个打开文件的描述符(文件句柄);

读取整个文件到一个字符串中:

    buf, err := ioutil.ReadFile(products.txt)fmt.Printf("%s\n", string(buf))err = ioutil.WriteFile(products_copy.txt, buf, 0644) // oct, not hex

读取指定大小内容到缓冲

 buf := make([]byte, 1024)n, err := inputReader.Read(buf)

按列读取文件中的数据
如果数据是按列排列并用空格分隔的,你可以使用 fmt 包提供的以 FScan 开头的一系列函数来读取他们;

 file, err := os.Open("products2.txt")var col1, col2, col3 []stringfor {var v1, v2, v3 string_, err := fmt.Fscanln(file, &v1, &v2, &v3)// scans until newlineif err != nil {break}col1 = append(col1, v1)col2 = append(col2, v2)col3 = append(col3, v3)}

compress包:读取压缩文件

3、写文件:
 outputFile, outputError := os.OpenFile("output.dat", os.O_WRONLY|os.O_CREATE, 0666)defer outputFile.Close()outputWriter := bufio.NewWriter(outputFile)outputString := "hello world!\n"for i:=0; i<10; i++ {outputWriter.WriteString(outputString)}outputWriter.Flush()

标志:

 os.O_RDONLY:只读os.O_WRONLY:只写os.O_CREATE:创建:如果指定文件不存在,就创建该文件。os.O_TRUNC:截断:如果指定文件已存在,就将该文件的长度截为0。
4、文件拷贝:io.Copy
 src, err := os.Open(srcName)defer src.Close()dst, err := os.Create(dstName)defer dst.Close()io.Copy(dst, src)
5、 从命令行读取参数

os.Args:用来处理一些基本的命令行参数,os.Args[0] 放的是程序本身的名字,os.Args[1:]用来保存变量;

flag 包:
在 flag 包中有一个 Flag 被定义成一个含有如下字段的结构体:

 type Flag struct {Name     string // name as it appears on command lineUsage    string // help messageValue    Value  // value as setDefValue string // default value (as text); for usage message}

下面的程序 echo.go 模拟了 Unix 的 echo 功能:

package mainimport ("flag" // command line option parser"os"
)var NewLine = flag.Bool("n", false, "print newline") // echo -n flag, of type *boolconst (Space   = " "Newline = "\n"
)func main() {flag.PrintDefaults()flag.Parse() // Scans the arg list and sets up flagsvar s string = ""for i := 0; i < flag.NArg(); i++ {if i > 0 {s += " "if *NewLine { // -n is parsed, flag becomes trues += Newline}}s += flag.Arg(i)}os.Stdout.WriteString(s)
}

相关函数:

* flag.PrintDefaults() 打印 flag 的使用帮助信息
* flag.Parse() 扫描参数列表
* flag.Arg(i) 表示第i个参数,注意:flag.Arg(0) 就是第一个真实的 flag,而不是像 os.Args(0) 放置程序的名字
* flag.Narg() 返回参数的数量
* flag.Bool flag.Int(),flag.Float64(),flag.String(),设置命令行参数
6、 JSON 数据格式

常用函数:

import   "encoding/json"       //引入包
func Marshal(v interface{}) ([]byte, error) //序列化
json.MarshalforHTML()       //web 应用中最好使用该函数,将对数据执行HTML转码,可以被安全地嵌在 HTML <script> 标签中
func NewEncoder(w io.Writer) *Encoder   //将数据对象 v 的json编码写入 io.Writer w 中
func Unmarshal(data []byte, v interface{}) error    //反序列化

JSON 与 Go 类型对应如下:

bool 对应 JSON 的 booleans
float64 对应 JSON 的 numbers
string 对应 JSON 的 strings
nil 对应 JSON 的 null
7、Go 中的密码学

hash 包:实现了 adler32、crc32、crc64 和 fnv 校验;
crypto 包:实现了其它的 hash 算法,比如 md4、md5、sha1 等。以及完整地实现了 aes、blowfish、rc4、rsa、xtea 等加密算法。

【Go】Go基础(十):文件读写相关推荐

  1. python os读取文件内容_python基础之文件读写

    python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到 ...

  2. Python学习入门基础:文件读写操作、模块和包、异常

    一.文件 文件的概念 文件的基本操作 文件/文件夹的常用操作 文本文件的编码方式 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多 ...

  3. 【Python基础】文件读写

    IO操作的类型 文件读写是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘. 读写文件就是请 ...

  4. 带你学python基础:文件读写,俗称IO操作

    这一节讲个挺有意思的知识,至少在我以前刚刚接触编程的时候,对于文件操作还是觉得很有意思的事情,这也许是有一种操作文件的激情吧,希望看到这篇文章的读者也会有这样的激情,说明还是很有兴趣的,当然,就算没有 ...

  5. 实验十 文件读写 1. 文件排版(文本文件读写)

    [问题描述] 英文电影中参演人员名单一般以某种方式进行排版显示.给定一个未排版的文件listin.txt,该文件中每行参演人员名单由冒号ldquo:rdquo分隔成前后两部分,但格式杂乱无章,单词(由 ...

  6. 【Python 基础教程 20】全面掌握Python3输入输出:从入门到高级的实用指南(文件读写,Excel读写,Markdowm文件读写)

    目录标题 1. 简介 1.1 Python3 输入输出的定义 1.2 输入输出的重要性和常见应用场景 2. 标准输入输出 2.1 介绍标准输入(stdin) 2.2 介绍标准输出(stdout) 2. ...

  7. Python 文件读写

    Python 文件读写 Python内置了读写文件的函数,用法和C是兼容的.本节介绍内容大致有:文件的打开/关闭.文件对象.文件的读写等. 本章节仅示例介绍 TXT 类型文档的读写,也就是最基础的文件 ...

  8. 查看文件二进制编码_小白也能学会系列:用python文件读写代码实例!(简单案例)...

    前言: 不久之前,从一个.dat文件中读取波形数据,通过一个自编码网络进行异常检测.所以特意在此写出来,咱从最基础的文件读写开始吧. 先说数据,是一个int16型的数组.说是数组,但是读取也并不简单. ...

  9. python读取dat数据_dat文件读写_c语言读写dat文件_c语言读dat文件 - 云+社区 - 腾讯云...

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 13 }文件读写:写入目录的获取比较麻烦,各个平台不同,所以用c++自己的文件读 ...

  10. python读文件完整代码_python文件读写代码实例

    实验室导师又有任务,从一个.dat文件中读取波形数据,通过一个自编码网络进行异常检测.可是对我这种小白来说真的艰难.从最基础的文件读写开始吧. 先说数据,是一个int16型的数组.说是数组,但是读取也 ...

最新文章

  1. 量子计算和量子模拟研究获进展
  2. 树中数据间关系整理~节点关系及用途解析及常用术语整理
  3. python慕课视频-python爬虫:爬取网站视频
  4. 将SVN与BUG跟踪管理集成
  5. 【android-tips】关于android应用R文件无法读取
  6. python int64,如何从Python生成唯一的64位整数?
  7. 【个人网盘-updog】使用updog建立个人网盘,so easy
  8. windows 10 下利用WSL的Linux环境实现vscode C/C++环境的配置
  9. 使用ASP.NET Core 3.x 构建 RESTful API - 3.3.1 HTTP状态码
  10. 日历视图的XML属性
  11. 20行 Python 代码爬取王者荣耀全英雄皮肤 | 原力计划
  12. linux搭建认证服务器,Linux上搭建FreeRadius服务器
  13. 示波器探头对测量可能引起的10种影响
  14. spring boot+thymeleaf+bootstrap 简单实现后台管理系统界面
  15. L1-087 机工士姆斯塔迪奥-PAT 团体程序设计天梯赛 GPLT
  16. 硬盘 SMART 检测参数详解
  17. 每日新闻:6G概念研究今年启动;德国SAP斥80亿美元收购美国Qualtrics;华为发布人工智能平台;微软收购两家游戏工作室...
  18. 华为的5G到底有多厉害?
  19. 英式音标26字母发音规律
  20. Linux进程间关系之守护进程

热门文章

  1. 借助深度卷积神经网络对图片 GIF 视频进行超分辨率放大(即放大与降噪) 以及 对视频进行 插帧(即补帧).
  2. c++中的public,protected,private
  3. OpenCV Mat矩阵(图像Mat)初始化及访问方法
  4. 结构光测距相位差_ROHM确立新型VCSEL模块技术 有助于提高测距精度
  5. 剑指offer:面试题09. 用两个栈实现队列
  6. 在CentOS 6.6 64bit上基于源码安装全功能的vim 7.4实录
  7. hmac-sha1加密算法C源码示例
  8. Squid故障与解决方法汇总
  9. 使用 Trace32 对 FLASH 编程
  10. linux进程间通信:system V 信号量和共享内存实现进程间同步