一、文件读取

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

package main

import (
"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 main

import (
"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 main

import (
"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 main

import (
"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 main

import (
"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 main

import (
"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)
}
}

  

go读写文本文件的更多相关文章

  1. Java读写文本文件操作

    package com.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; ...

  2. delphi读写文本文件

    delphi读写文本文件   在工作中遇到了这样一个问题,使用PLSQL将一个表的数据转化成一些列的insert语句存储到一个.sql文本中,我本来想使用access数据库中的查询视图一次执行这些语句 ...

  3. 03_Android项目中读写文本文件的代码

    编写一下Android界面的项目 使用默认的Android清单文件 <?xml version="1.0" encoding="utf-8"?> & ...

  4. 通过读写文本文件小结“关于python处理中文编码的问题”

    一.引言 无论学习什么程序语言,字符串这种数据类型总是着有非常重要.然而最近在学习python这门语言,想要显示中文,总是出现各种乱码.于是在网上查了很多资料,各说纷纭,我也尝试了许多的方法,有时候可 ...

  5. Java入门:读写文本文件

    文本文件的读写是学习java必须掌握的一项基本技术,因为在项目中时常会涉及到文本文件的读写. 一.使用FileWriter写文件 1.FileWriter类 [功能] FileWriter类专门用来写 ...

  6. 【289】◀▶ Python I/O & 读写文本文件

    参考:Python 文件 I/O 参考:Python OS 文件/目录方法 目录: 01   open 函数 用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写. 02   F ...

  7. python 读写文本文件

    本人最近新学python ,用到文本文件的读取,经过一番研究,从网上查找资料,经过测试,总结了一下读取文本文件的方法. 1.在读取文本文件的时无非有两种方法: a.f=open('filename', ...

  8. StreamWrite-StreamRead 读写文本文件

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  9. C# 读写文本文件乱码解决方案

    在使用C#对文本文件读取的时候,如果其中包含了中文,经常会出现乱码.一般解决是在StreamReader加一个编码,我使用的是Encoding.UTF8,一般情况下使用这个参数就可以.但是,在这次我使 ...

  10. 关于fstream、ifstream、ofstream读写文本文件、二进制文件详解

    fstream.ifstream.ofstream是c++中关于文件操作的三个类 fstream类对文件进行读操作和写操作 打开文件 fstream fs("要打开的文件名",打开 ...

随机推荐

  1. vue项目build打包后图片路径不对导致图片空白不显示问题解决方法

    1.在上篇文章src配置及引入的基础上修改项目配置: 文章链接地址:https://www.cnblogs.com/hsl-shiliang/p/10333022.html. 2.具体配置过程如图: ...

  2. RESET - 把一个运行时参数值恢复为缺省值

    SYNOPSIS RESET name RESET ALL DESCRIPTION 描述 RESET 将运行时参数恢复为缺省值. RESET 是下面语句的一个变种 SET parameter TO D ...

  3. centos7系统之telnet命令rpm包安装

    centos7系统之telnet命令rpm包安装 1. 下载安装包 rpm包下载位置:http://vault.centos.org/6.3/os/x86_64/Packages/ [root@ywb ...

  4. ESP8266物联网开发 一

    其实学了这么多,最终目的还是在于物联网. 好吧,我们就在这个的基础上来吧,先摸索,边学边摸索. 去网上买了8266开发板... 遇到的问题: USB线的问题.从同事那随便搞了一根USB线,然后写好程序 ...

  5. Sass-数字运算

    在 Sass 运算中数字运算是较为常见的,数字运算包括前面介绍的:加法.减法.乘法和除法等运算.而且还可以通过括号来修改他们的运算先后顺序.和我们数学运算是一样的,一起来看个示例. .box { wi ...

  6. Vue 侦听属性

    Vue 提供了一种更通用的方式来观察和响应 Vue 实例上的数据变动:侦听属性 <!DOCTYPE html> <html> <head> <meta cha ...

  7. 公私钥,数字证书,https

    1.密钥对,在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的. 2.公钥,公钥用来给数据加密,用公钥加密的数据只能使用私钥解密. 3.私 ...

  8. python基础:10.多线程装饰器模式下的单例模式

    with def __enter__ def __close__ 闭包: 装饰器: 闭包的延迟绑定: 单例模式的应用:

  9. C# 枚举的声名和使用

    namespace xxxxxx { public enum EnumTextHAlign { Left = , Center = , Right = } } using xxxxxx;

  10. 接触python的第2天:了解变量和打印

    1变量不用定义类型, 可以直接赋值 >>> a =5 >>> a 5 >>> a='hello' >>> a 'hello' 2 ...