gobyexample-writing-files

来源:https://github.com/xg-wang/gobyexample/tree/master/examples

package main

import (
    "bufio"
    "fmt"
    "io/ioutil"
    "os"
)

func check(e error) {
    if e != nil {
        panic(e)
    }
}

func main() {

    //写入一个字符串(或者只是一些字节)到一个文件
    d1 := []byte("hello\ngo\n")
    err := ioutil.WriteFile("D:/goworkspace/src/gobyexample/writing-files/dat1.txt", d1, 0644)
    check(err)

    //对于更细粒度的写入,先打开一个文件
    f, err := os.Create("D:/goworkspace/src/gobyexample/writing-files/dat2.txt")
    check(err)

    //打开文件后,习惯立即使用 defer 调用文件的`Close`操作
    defer f.Close()

    //可以写入字节切片
    d2 := []byte{115, 111, 109, 101, 10} //some\n
    n2, err := f.Write(d2)
    check(err)
    fmt.Printf("wrote %d bytes\n", n2)

    n3, err := f.WriteString("writes\n")
    fmt.Printf("wrote %d bytes\n", n3)

    //调用 `Sync` 来将缓冲区的信息写入磁盘
    f.Sync()

    w := bufio.NewWriter(f)
    n4, err := w.WriteString("buffered\n")
    fmt.Printf("wrote %d bytes\n", n4)

    //使用`Flush`来确保所有缓存的操作已写入底层写入器
    w.Flush()
}

输出结果

wrote 5 bytes
wrote 7 bytes
wrote 9 bytes
![image.png](https://upload-images.jianshu.io/upload_images/7547037-f5abc353c62959cd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![image.png](https://upload-images.jianshu.io/upload_images/7547037-6c2ea3d0a66266e7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 太长了,还是转载吧...今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源...
    庞哈哈哈12138阅读 20,274评论 3 283
  • 馬上要喬遷新居了,JUN丫頭馬上定了一個戴森給我,放我專用的榻榻米房,空氣淨化過濾加循環,哎,剛剛送了老貴的一只萬...
    帶風走路deFENG阅读 121评论 0 1
  • 记得刚上高中的时候,自己什么都不懂,拉线拉了半天都拉不直,更不要说什么黑白灰,什么明暗交界线和黄金分割线了。 那时...
    only沂阅读 360评论 7 6
  • 明天就是父亲节了,可我还在忙于学习,想要期末考出优异的成绩,这使我忘了还在累死累活、拼死拼命做生意的父母。...
    e1cce11cbafb阅读 571评论 2 5
  • 端午节前后,连续两个月没下雨的淮北地区,却突然下起了暴雨,哗哗的大雨连续两天两夜没有停下。在城市里,人们感到舒适凉...
    时影书阅读 1,377评论 1 4