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

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

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

本文實(shí)例講述了go語(yǔ)言實(shí)現(xiàn)文件分割的方法。分享給大家供大家參考。具體實(shí)現(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)
}

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

相關(guān)文章

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

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

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

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

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

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

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

    深入探索Go?1.21中的?maps工具庫(kù)

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

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

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

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

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

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

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

    golang代碼檢測(cè)工具之goimports解讀

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

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

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

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

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

最新評(píng)論

托里县| 连云港市| 徐水县| 西丰县| 玛曲县| 榕江县| 永定县| 张家川| 全南县| 大同市| 林周县| 五常市| 文山县| 洛阳市| 永年县| 黄浦区| 嘉峪关市| 中牟县| 凭祥市| 琼中| 丰都县| 凤城市| 永修县| 增城市| 台南市| 滨海县| 山东省| 鄂尔多斯市| 丹凤县| 商南县| 体育| 平定县| 鄂托克前旗| 南乐县| 乳山市| 虞城县| 沙坪坝区| 通道| 阳曲县| 鄂托克前旗| 泰州市|