最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

go語言實現(xiàn)文件分割的方法

 更新時間:2015年03月02日 12:37:03   作者:dingding  
這篇文章主要介紹了go語言實現(xiàn)文件分割的方法,實例分析了Go語言操作文件的技巧,需要的朋友可以參考下

本文實例講述了go語言實現(xiàn)文件分割的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:

復(fù)制代碼 代碼如下:
import (
 // "bufio"
 "flag"
 "fmt"
 "io"
 "os"
)
import "strconv"
var infile *string = flag.String("f", "Null", "please input a file name or dir.")
var size *string = flag.String("s", "0", "please input a dst file size.")
//func dataCopy(file *os.File, file *os.File)
func SplitFile(file *os.File, size int) {
 finfo, err := file.Stat()
 if err != nil {
  fmt.Println("get file info failed:", file, size)
 }
 fmt.Println(finfo, size)
 //每次最多拷貝1m
 bufsize := 1024 * 1024
 if size < bufsize {
  bufsize = size
 }
 buf := make([]byte, bufsize)
 num := (int(finfo.Size()) + size - 1) / size
 fmt.Println(num, len(buf))
 for i := 0; i < num; i++ {
  copylen := 0
  newfilename := finfo.Name() + strconv.Itoa(i)
  newfile, err1 := os.Create(newfilename)
  if err1 != nil {
   fmt.Println("failed to create file", newfilename)
  } else {
   fmt.Println("create file:", newfilename)
  }
  for copylen < size {
   n, err2 := file.Read(buf)
   if err2 != nil && err2 != io.EOF {
    fmt.Println(err2, "failed to read from:", file)
    break
   }
   if n <= 0 {
    break
   }
   //fmt.Println(n, len(buf))
   //寫文件
   w_buf := buf[:n]
   newfile.Write(w_buf)
   copylen += n
  }
 }

 return
}
func main() {
 flag.Parse()
 if *infile == "Null" {
  fmt.Println("no file to input")
  return
 }
 file, err := os.Open(*infile)
 if err != nil {
  fmt.Println("failed to open:", *infile)
 }
 defer file.Close()
 size, _ := strconv.Atoi(*size)
 SplitFile(file, size*1024)
}

希望本文所述對大家的Go語言程序設(shè)計有所幫助。

相關(guān)文章

  • golang如何實現(xiàn)抓取IP地址的蜘蛛程序詳解

    golang如何實現(xiàn)抓取IP地址的蜘蛛程序詳解

    這篇文章主要給大家介紹了關(guān)于利用golang如何實現(xiàn)抓取IP地址的蜘蛛程序的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2018-07-07
  • 在Go語言單元測試中解決HTTP網(wǎng)絡(luò)依賴問題

    在Go語言單元測試中解決HTTP網(wǎng)絡(luò)依賴問題

    在 Go 語言中,我們需要找到一種可靠的方法來測試 HTTP 請求和響應(yīng),本文將探討在 Go 中進行 HTTP 應(yīng)用測試時,如何解決應(yīng)用程序的依賴問題,以確保我們能夠編寫出可靠的測試用例,需要的朋友可以參考下
    2023-07-07
  • golang 40行代碼實現(xiàn)通用協(xié)程池

    golang 40行代碼實現(xiàn)通用協(xié)程池

    golang協(xié)程機制很方便的解決了并發(fā)編程的問題,但是協(xié)程并不是沒有開銷的,所以也需要適當限制一下數(shù)量。這篇文章主要介紹了golang 40行代碼實現(xiàn)通用協(xié)程池,需要的朋友可以參考下
    2018-08-08
  • 深入探索Go?1.21中的?maps工具庫

    深入探索Go?1.21中的?maps工具庫

    隨著?Go?1.21.0?版本的發(fā)布,新增了兩個實用的泛型工具庫:maps?和?slices,下面小編就帶大家一起學(xué)習一下?maps?工具庫的相關(guān)知識吧
    2023-08-08
  • go HTTP2 的頭部壓縮算法hpack實現(xiàn)詳解

    go HTTP2 的頭部壓縮算法hpack實現(xiàn)詳解

    這篇文章主要為大家介紹了go HTTP2 的頭部壓縮算法hpack實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • GO項目實戰(zhàn)之Gorm格式化時間字段實現(xiàn)

    GO項目實戰(zhàn)之Gorm格式化時間字段實現(xiàn)

    GORM自帶的time.Time類型JSON默認輸出RFC3339Nano格式的,下面這篇文章主要給大家介紹了關(guān)于GO項目實戰(zhàn)之Gorm格式化時間字段實現(xiàn)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • Golang協(xié)程池gopool設(shè)計與實現(xiàn)

    Golang協(xié)程池gopool設(shè)計與實現(xiàn)

    本文主要介紹了Golang協(xié)程池gopool設(shè)計與實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2022-04-04
  • golang代碼檢測工具之goimports解讀

    golang代碼檢測工具之goimports解讀

    這篇文章主要介紹了golang代碼檢測工具之goimports使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Golang中Bit數(shù)組的實現(xiàn)方式

    Golang中Bit數(shù)組的實現(xiàn)方式

    這篇文章主要介紹了Golang中Bit數(shù)組的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 通過源碼分析Golang?cron的實現(xiàn)原理

    通過源碼分析Golang?cron的實現(xiàn)原理

    golang實現(xiàn)定時任務(wù)很簡單,只須要簡單幾步代碼即可以完成,最近在做了幾個定時任務(wù),想研究一下它內(nèi)部是怎么實現(xiàn)的,所以將源碼過了一遍,記錄和分享在此。需要的朋友可以參考以下內(nèi)容,希望對大家有幫助
    2022-10-10

最新評論

莫力| 阿拉善右旗| 石屏县| 夏津县| 外汇| 巴塘县| 曲松县| 沽源县| 岳阳市| 保康县| 乐亭县| 金昌市| 琼海市| 门源| 辽阳市| 剑河县| 锦州市| 贵德县| 犍为县| 高密市| 日喀则市| 绥江县| 乃东县| 大姚县| 高邑县| 天长市| 枝江市| 泰宁县| 赞皇县| 宁城县| 白朗县| 太湖县| 沈阳市| 治多县| 苏州市| 伊吾县| 深圳市| 苏州市| 太和县| 当阳市| 吐鲁番市|