本文实例讲述了go语言实现文件分割的方法。分享给大家供大家参考。具体实现方法如下:
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语言程序设计有所帮助。
本文向大家介绍go语言实现sqrt的方法,包括了go语言实现sqrt的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了go语言实现sqrt的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Go语言程序设计有所帮助。
本文向大家介绍go语言对文件按照指定块大小进行分割的方法,包括了go语言对文件按照指定块大小进行分割的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了go语言对文件按照指定块大小进行分割的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的Go语言程序设计有所帮助。
本文向大家介绍易语言分割文本的方法简介,包括了易语言分割文本的方法简介的使用技巧和注意事项,需要的朋友参考一下 易语言分割文本,这个就是把文本分割出来,我给大家操作。 1、打开易语言新建一个windows程序进入下图界面 2、我们输入 分割文本 3、展开发现有3个参数 4、第一个参数 我们输入 “aa bb” 是被分割的文本 第二个参数 我们输入 “ ” 这个就是用来分割的 5、我们输入调试
本文向大家介绍Go语言实现简单留言板的方法,包括了Go语言实现简单留言板的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Go语言实现简单留言板的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Go语言程序设计有所帮助。
本文向大家介绍Go语言实现Fibonacci数列的方法,包括了Go语言实现Fibonacci数列的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Go语言实现Fibonacci数列的方法。分享给大家供大家参考。具体如下: Fibonacci数列:1,1,2,3,5,8,13,21,,, (即从第三项起,每一项的值都等于前两项之后) 第一种,使用递归: 第二种,不使用递归: 经过检验,使
本文向大家介绍go语言实现AES加密的方法,包括了go语言实现AES加密的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了go语言实现AES加密的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Go语言程序设计有所帮助。