go語言之文件操做

一: 相關的APIui

1func Create(name string) (file *File, err Error)
  根據提供的文件名建立新的文件,返回一個文件對象,默認權限是0666
2 func NewFile(fd uintptr, name string) *File
 根據文件描述符建立相應的文件,返回一個文件對象
3 func Open(name string) (file *File, err Error)
  只讀方式打開一個名稱爲name的文件
4 func OpenFile(name string, flag int, perm uint32) (file *File, err Error)
  打開名稱爲name的文件,flag是打開的方式,只讀、讀寫等,perm是權限
5 func (file *File) Write(b []byte) (n int, err Error)
  寫入byte類型的信息到文件
6 func (file *File) WriteAt(b []byte, off int64) (n int, err Error)
  在指定位置開始寫入byte類型的信息
7 func (file *File) WriteString(s string) (ret int, err Error)
  寫入string信息到文件
8 func (file *File) Read(b []byte) (n int, err Error)
  讀取數據到b中
9 func (file *File) ReadAt(b []byte, off int64) (n int, err Error)
  從off開始讀取數據到b中
10 func Remove(name string) Error
  刪除文件名爲name的文件

二: 寫文件spa

package main

import (
   "os"
   "fmt"
)

func main() {
   //新建文件
   file, err := os.Create("./xxx.txt")
   if err != nil {
      fmt.Println(err)
      return
   }
   defer file.Close()
   //寫入內容
   for i := 0; i < 5; i++ {
      //寫入信息
      file.WriteString("ab\n")
      file.Write([]byte("cd\n"))
   }
}

三:讀文件code

package main

import (
   "os"
   "fmt"
)

func main() {
   //打開文件
   file, err := os.Open("./xxx.txt")
   if err != nil {
      fmt.Println(err)
   }
   defer file.Close()
   buf := make([]byte, 1024)
   for {
      //讀文件
      n, _ := file.Read(buf)
      if n == 0 {
         break
      }
      fmt.Println(string(buf))
   }
}

四:拷貝文件對象

package main

import (
   "os"
   "fmt"
   "io"
)

func main() {
   //打開文件
   srcFile, err := os.Open("./xxx.txt")
   if err != nil {
      fmt.Println(err)
      return
   }
   //建立目標文件
   dstFile, err2 := os.Create("./yyy.txt")
   if err2 != nil {
      fmt.Println(err2)
      return
   }
   //切片緩衝區
   buf := make([]byte, 1024)
   for {
      //從源文件讀
      n, err := srcFile.Read(buf)
      //Read()若沒法獲得更多的結果,就返回EOF
      if err != nil && err != io.EOF {
         fmt.Println(err)
         break
      }
      if n == 0 {
         fmt.Println("文件處理完畢")
         break
      }
      //讀到的內容寫入目標文件
      dstFile.Write(buf[:n])
   }
   srcFile.Close()
   dstFile.Close()
}
相關文章
相關標籤/搜索