Chinaunix首页 | 论坛 | 博客
  • 博客访问: 32699
  • 博文数量: 9
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 100
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-18 18:25
个人简介

编程学习

文章分类

全部博文(9)

分类: Erlang

2015-02-03 13:08:58

文件的操作主要有新建,打开,读写内容,复制,删除等,与文件操作有关的库包有io、ioutil、os、bufio等。

一、简单的读取已存在文件内容到[]byte或者字符串变量中,将一个[]byte或者字符串写入到一个文件中。








package main
import (
    "fmt"
    "io/ioutil"
    "os"
)

func main() {
    /********************用io/ioutil包实现读文件和写入文件**********************************/
    //读取一个文件内容到[]byte实例中
    b, err := ioutil.ReadFile("test.json")
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println(b)
    fmt.Println(string(b))

   //将一个[]byte实例的内容写入到一个文件中
    err = ioutil.WriteFile("ioutil.json", b, 0777)
    if err != nil {
        fmt.Println(err)
    }



    /************************************用os包实现读文件和写入文件**********************************/

    //读取一个文件内容读到[]byte实例中
    file, err := os.Open("test.json")
    if err != nil {
       fmt.Println("an error has occurred when open file", err)
    }
    defer file.Close()

    b = make([]byte, 100)
    n, err := file.Read(b)
    fmt.Println(n, string(b))
    //将一个[]byte实例的内容写入到一个文件中
    createFile, _ := os.Create("createfile.json")
    if err != nil {
        fmt.Println("an error has occurred when open file", err)
    }
    defer file.Close()
    n, err = createFile.Write(b)
    if err != nil {
        fmt.Println(err)
    }
    //createFile.WriteString(string(b))
    fmt.Println(n)


/************************************用bufio包实现带缓冲的具体到行数据的操作**********************************/
 
 
    inFile, err := os.Open("test.txt")
    if err != nil {
        fmt.Println(err)
   }
    defer inFile.Close()

    outFile, err := os.Create("11.txt")
    if err != nil {
        fmt.Println(err)
    }
    defer outFile.Close()

    reader := bufio.NewReader(inFile)
    writer := bufio.NewWriter(outFile)

    eof := false
    for !eof {
        line, err := reader.ReadString('\n')//每次读取到换行的地方
        if err == io.EOF {
            err = nil
            eof = true
        } else if err != nil {
            fmt.Println(err)
        }

        _, err = writer.WriteString(line)
        if err != nil {
            fmt.Println(err)
        }
        writer.Flush()//将缓冲区的数据写入到io.Writer接口
    }
}


阅读(2237) | 评论(0) | 转发(0) |
0

上一篇:Linux下mysql 基本操作实践记录

下一篇:没有了

给主人留下些什么吧!~~