zoukankan      html  css  js  c++  java
  • golang 读取文件

    1、以块的形式读取文件
    package main
    
    import (
     "io"
     "os"
     "fmt"
    )
    const BufferSize = 100
    func main() {
     file, err := os.Open("filetoread.txt")
     if err != nil {
         fmt.Println(err)
         return
     }
     defer file.Close()
     buffer := make([]byte, BufferSize)
     for {
         bytesread, err := file.Read(buffer)
           if err != nil {
             if err != io.EOF {
            fmt.Println(err)
         }
      break
     }
     fmt.Println("bytes read: ", bytesread)
     fmt.Println("bytestream to string: ", string(buffer[:bytesread]))
     }
    }
     
    2、逐行读取文件
    package main
    
    import (
      "bufio"
      "fmt"
      "io"
      "os"
      "strings"
    )
    
    func ReadLine(fileName string, handler func(string)) error {
        f, err := os.Open(fileName)
        if err != nil {
            return err
        }
        buf := bufio.NewReader(f)
        for {
            line, err := buf.ReadString('
    ')
            line = strings.TrimSpace(line)
            handler(line)
            if err != nil {
               if err == io.EOF {
                  return nil
               }
            return err
            }
        }
        return nil
    }
    
    func Print(line string) {
        fmt.Println(line)
    }
    
    func main() {
        ReadLine("test.txt", Print)
    }
    3、一次性读取
    
    package main
        import "fmt"
        import "io/ioutil"
        func main() {
            b, e := ioutil.ReadFile("d:/goTest/123.txt")
            if e != nil {
                fmt.Println("read file error")
                return
            }
            fmt.Println(string(b))
        }
  • 相关阅读:
    RHEL6 建立DVD repo
    stl之std::remove_copy
    分鱼问题
    Nutch的日志系统
    log4j配置文件及nutch中的日志配置
    slf4j教程
    Java中的日期操作
    Avro基础
    【JAVA编码专题】总结
    【JAVA编码专题】深入分析 Java 中的中文编码问题
  • 原文地址:https://www.cnblogs.com/forgo/p/15090494.html
Copyright © 2011-2022 走看看