<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Golang 獲取命令行攜帶的參數丶文件操作

      一.獲取命令行攜帶的參數

       1 /* 獲取命令執行攜帶的參數 */
       2 func TestGetCMDParameter() {
       3     /*
       4         os.Args就是運行時攜帶的參數.
       5         os.Args是一個切片
       6         第一個是主程序的名稱
       7 
       8         測試:
       9             1.編譯  go buil main.go
      10             2.運行  ./main -h localhost -p 1234 -P 0000 -u root
      11     */
      12     for index, val := range os.Args {
      13         index++
      14         fmt.Printf("第%v個參數=%v  ", index, val)
      15     }
      16 
      17     // 進行過處理的args
      18     var user string
      19     var host string
      20     var passwd string
      21     var port int
      22 
      23     flag.IntVar(&port, "p", 6379, "提醒用戶,默認端口為6379.")
      24     flag.StringVar(&host, "h", "", "提醒用戶,默認主機名空.")
      25     flag.StringVar(&user, "u", "", "提醒用戶,默認用戶為空.")
      26     flag.StringVar(&passwd, "P", "", "提醒用戶,默認密碼為空.")
      27 
      28     // 必須調用該方法才會轉換
      29     flag.Parse()
      30 
      31     fmt.Printf("\nhost=%v, port=%v, user=%v, passwd=%v \n", host, port, user, passwd)
      32 }

      二.文件操作

        1 func TestFile() {
        2     /*
        3         使用細節:
        4             1.file變量是指針類型
        5             2.所有的文件讀寫操作都基于file結構體
        6             3.
        7     */
        8     // 文件的打開和關閉
        9     FileOpenClose := func(filename string) {
       10         file, err := os.Open(filename)
       11         if err != nil {
       12             fmt.Println("open file error ! ", err)
       13             return
       14         }
       15         err = file.Close()
       16         if err != nil {
       17             fmt.Println("close file error ! ", err)
       18             return
       19         }
       20     }
       21     // 讀文件 *Reader  帶緩沖的讀數據.默認緩沖大小為4096個字節(NewReader)
       22     FileReadBuf := func(filename string) {
       23         file, err := os.Open(filename)
       24         if err != nil {
       25             fmt.Println("open file error ! ", err)
       26             return
       27         }
       28         defer file.Close()
       29 
       30         reader := bufio.NewReader(file)
       31         for {
       32             context, err := reader.ReadString('\n') // 讀取到換行符就返回
       33 
       34             if err == io.EOF {
       35                 fmt.Println("注意這里,帶結尾符的內容:", context)
       36                 break
       37             }
       38             fmt.Printf(context)
       39 
       40         }
       41 
       42     }
       43     // 一次性將文件內容讀取出來.只適用文件不大的情況 ioutil.ReadFile (好象現在過時了)
       44     FileRead := func(filename string) {
       45         // 文件的打開和關閉都在ReadFile中處理了
       46         bytes, err := ioutil.ReadFile(filename)
       47         if err != nil {
       48             fmt.Println("open file error ! ", err)
       49             return
       50         }
       51         fmt.Println(string(bytes))
       52     }
       53     // 寫文件.以具體模式打開文件
       54     FileWriteOpenFile := func(filename string, context []string) {
       55         /*
       56             const (
       57                 // Exactly one of O_RDONLY, O_WRONLY, or O_RDWR must be specified.
       58                 O_RDONLY int = syscall.O_RDONLY // open the file read-only.
       59                 O_WRONLY int = syscall.O_WRONLY // open the file write-only.
       60                 O_RDWR   int = syscall.O_RDWR   // open the file read-write.
       61                 // The remaining values may be or'ed in to control behavior.
       62                 O_APPEND int = syscall.O_APPEND // append data to the file when writing.
       63                 O_CREATE int = syscall.O_CREAT  // create a new file if none exists.
       64                 O_EXCL   int = syscall.O_EXCL   // used with O_CREATE, file must not exist.
       65                 O_SYNC   int = syscall.O_SYNC   // open for synchronous I/O.
       66                 O_TRUNC  int = syscall.O_TRUNC  // truncate regular writable file when opened.
       67             )
       68             linux下,第三個參數為文件權限,創建新文件的時候有關
       69         */
       70         file, err := os.OpenFile(filename, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, os.FileMode(666))
       71         if err != nil {
       72             fmt.Println("open file error ! ", err)
       73             return
       74         }
       75         defer file.Close()
       76         // 帶緩沖寫文件
       77         writer := bufio.NewWriter(file)
       78         for _, val := range context {
       79             fmt.Println(val)
       80             _, err := writer.WriteString(val)
       81             if err != nil {
       82                 fmt.Println("write file error ! ", err)
       83                 break
       84             }
       85 
       86         }
       87         // 帶緩沖的writer是先將數據寫入緩存的,所以需要調用Flush將緩沖的數據真正寫入到文件中去
       88         writer.Flush()
       89     }
       90     // 判斷文件是否存在
       91     FileExists := func(filename string) (bool, error) {
       92         /*
       93             os.Stat 返回的FileInfo變量包含了文件的詳細信息
       94             type FileInfo interface {
       95                 Name() string       // base name of the file
       96                 Size() int64        // length in bytes for regular files; system-dependent for others
       97                 Mode() FileMode     // file mode bits
       98                 ModTime() time.Time // modification time
       99                 IsDir() bool        // abbreviation for Mode().IsDir()
      100                 Sys() any           // underlying data source (can return nil)
      101             }
      102         */
      103         finfo, err := os.Stat(filename)
      104         if err == nil {
      105             return true, nil
      106         }
      107         fmt.Println(finfo)
      108         if os.IsNotExist(err) {
      109             return false, nil
      110         }
      111         return false, err
      112     }
      113     // 復制文件
      114     FileCopy := func(desFileName string, srcFileName string) (written int64, err error) {
      115         // 1.先獲取src的file對象
      116         srcFile, err := os.Open(srcFileName)
      117         if err != nil {
      118             fmt.Printf("Open '%v' error! %v\n", srcFileName, err)
      119             return
      120         }
      121         defer srcFile.Close() // 記得關閉文件
      122         // 2.用src的file對象獲取帶緩沖的Reader,好配合Writer實現Copy
      123         reader := bufio.NewReader(srcFile)
      124 
      125         // 3.des的file對象
      126         desFile, err := os.OpenFile(desFileName, os.O_CREATE|os.O_WRONLY, 0666)
      127         if err != nil {
      128             fmt.Printf("Open '%v' error! %v\n", desFileName, err)
      129             return
      130         }
      131         defer desFile.Close()
      132         // 4.用des的file對象獲取帶緩沖的Writer,好配合Reader實現Copy
      133         writer := bufio.NewWriter(desFile)
      134 
      135         // 5.最終調用Copy.  如果目標文件夾不存在的話會報錯
      136         written, err = io.Copy(writer, reader)
      137         return
      138     }
      139 
      140     filename := "./data.json"
      141     FileOpenClose(filename)
      142     FileReadBuf(filename)
      143     FileRead(filename)
      144     FileWriteOpenFile(filename, []string{"1hell"})
      145     if ok, err := FileExists(filename); !ok {
      146         if err != nil {
      147             fmt.Println("獲取文件信息異常!", err)
      148         } else {
      149             fmt.Println("文件不存在!")
      150         }
      151     }
      152     if _, err := FileCopy("./test.json", filename); err != nil {
      153         fmt.Println("文件Copy錯誤!", err)
      154     }
      155 }

       

      posted @ 2023-09-16 10:06  看一百次夜空里的深藍  閱讀(117)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国精偷拍一区二区三区| 日本一级午夜福利免费区| 国产av人人夜夜澡人人爽麻豆| 亚洲深深色噜噜狠狠网站| 精品亚洲一区二区三区在线播放| 国产午夜福利不卡在线观看| 营山县| 黄色三级亚洲男人的天堂| 国产影片AV级毛片特别刺激 | 国产在线中文字幕精品| 国产精品一二二区视在线| 日韩人妻无码一区二区三区综合部| 国产精品一区二区不卡视频| 中文字幕在线精品国产| 久久亚洲精品11p| 女同另类激情在线三区| 久久91精品牛牛| 综合欧美视频一区二区三区| 免费专区丝袜调教视频| 日韩成人福利视频在线观看| 欧美福利电影A在线播放| 扒开双腿猛进入喷水高潮叫声| 亚洲AV成人片在线观看| 国产黄色免费看| 亚洲av产在线精品亚洲第一站| 国产在线精品一区二区三区直播| 亚洲欧美综合人成在线| 欧美一本大道香蕉综合视频| 欧美乱妇高清无乱码免费| 中文字幕亚洲综合久久| 成人免费A级毛片无码片2022| 99国产欧美另类久久久精品 | 大田县| 亚欧洲乱码视频在线专区| 欧美成人精品手机在线| 亚洲自拍偷拍福利小视频| 国产成人a在线观看视频| 国产免费午夜福利蜜芽无码| 中文字幕av一区二区| 久热在线中文字幕色999舞| 国产精品国产精品国产精品|