一、文件读取

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. Java笔试题-List l = new List()

    前言: 最近遇到的一道很基础的题,有时候大家可能离开了编译器就不行了. import java.util.List; /** * * @author catchegg * create date: 2 ...

  2. Swoole 的运行模式

    Swoole 做了什么 Swoole 是 php 的一个扩展,但是他又不是普通的扩展,其最明显的特点就是:一但运行后就会接管PHP的控制权,进入事件循环. 当某种IO事件发生时, Swoole 会回调 ...

  3. smbpasswd - Samba加密的口令文件。

    总览 SYNOPSIS smbpasswd 描述 DESCRIPTION 此文件是 Samba(7) 套件的一部分. smbpasswd是Samba加密的口令文件.文件中包含了用户名,UNIX用户ID ...

  4. 8VC Venture Cup 2017 - Elimination Round - B

    题目链接:http://codeforces.com/contest/755/problem/B 题意:给定PolandBall 和EnemyBall 这2个人要说的单词,然后每一回合轮到的人要说一个 ...

  5. Splay平衡树入门小结

    学习到这部分算是数据结构比较难的部分了,平衡树不好理解代码量大,但在某些情况下确实是不可替代的,所以还是非学不可. 建议先学Treap之后在学Splay,因为其实Splay有不少操作和Treap差不多 ...

  6. HTML5 arc的例子

    demo.html <!DOCTYPE html> <html lang="zh"> <head> <meta charset=" ...

  7. Erlang/Elixir精选-第4期(20191223)

    精选文章 A digital symphony - The architecture of API Fortress. 使用Actor模型来支持基于微服务的大规模分布式软件架构.用实例解释了Actor ...

  8. vfs的super block

    super block这个数据结构,乃至super block在磁盘上的位置,是哪里的规定? 没规定,1k偏移只是ext文件系统.但是像fat,它们第0扇区后就是保留扇区,但linux一样要识别它们. ...

  9. Linux系统重要文件(三)

    一系统运行级别文件 文件路径:/etc/inittab 文件作用说明:定义系统启动后,自动开启哪些软件程序系统 runlevel 查看当前运行级别 centos6系统运行级别: 7个级别      0 ...

  10. Angular JS - 7 - Angular JS 常用指令2

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...