Go基礎 終端操作和檔案操作

2021-09-07 16:28:31 字數 3609 閱讀 1692

操作終端相關的檔案控制代碼常量

os.stdin:標準輸入

os.stdout:標準輸出

os.stderr:標準錯誤輸出

關於終端操作的**例子:

package main

import "fmt"var (

firstname,lastname,s string

i intf float32

input = "56.12/5212/go"format = "%f/%d/%s")

func main()

這裡需要用到乙個包:bufio

下面是**例子:

package main

import (

"bufio"

"os"

"fmt")

var inputreader *bufio.reader

var input string

var err error

func main()

fmt.printf("the input was:%s\n",input)

}

從終端讀取一行字串,統計英文,數字,空格以及其他字元的數量

**實現:

package main

import (

"fmt"

"bufio"

"os")

func judgecount(str string) else

if v >= '0' && v <= '9' else

if v == ' ' else

}fmt.println("英文本母的個數:", countletter)

fmt.println("數字的個數:", countnum)

fmt.println("空格的個數:", countspace)

//關於其他字元這裡進行減一是因為這裡多算了乙個換行符\n

fmt.println("其他字元的個數:", countother-1)

}func main()

judgecount(str)

}

os.file封裝所有檔案相關的操作

開啟乙個檔案進行讀操作:os.open(name string)(*file,error)

關閉乙個檔案:file.close()

關於檔案操作的乙個簡單例子:

package main

import (

"os"

"fmt"

"bufio"

"io")

func main()

//這裡切記在開啟檔案的時候跟上defer 關閉這個檔案,防止最後忘記關閉

defer file.close()

inputreader :=bufio.newreader(file)

for

//下面會把每行的內容進行列印

fmt.printf("the input is:%s",inputstring)

}}

上面例子中關於讀檔案是一行一行的讀的,下面我們也可以一次性讀完整的檔案,但是切記如果檔案過大,這種方法不適用,這裡用到是io/ioutil包

package main

import (

"io/ioutil"

"fmt")

func main()

fmt.printf("%s\n",string(buf))

}

關於讀取壓縮檔案的例子,這裡用到的是compress/gzip包

package main

import (

"os"

"fmt"

"compress/gzip"

"bufio"

"io")

func main()

defer file.close()

reader,err :=gzip.newreader(file)

if err !=nil

bufreader :=bufio.newreader(reader)

forfmt.println("read file err",err)

break

}fmt.printf("%s",line)

}}

os.openfile("filename",os.o_wronly|os.o_create,066)

第乙個引數是檔名

第二個引數是檔案的開啟模式:

os.o_wronly:只寫

os.o_create:建立檔案

os.o_rdonly:唯讀

os.o_rdwr:讀寫

os.o_trunc:清空

第三個引數:許可權控制

r-->4

w-->2

x-->1

這裡和linux的是一樣的

關於寫入檔案的乙個例子,這裡寫了兩種方法一種是直接writestring方法,一種是通過bufio的方式:

package main

import (

"os"

"fmt"

"bufio")

func testwritefile()

defer file.close()

for i:=0;i<10;i++

}func testwritebuf()

defer file.close()

bufiowrite :=bufio.newwriter(file)

for i:=0;i<10;i++

bufiowrite.flush()

}func main()

關於拷貝檔案的例子:

package main

import (

"os"

"io")

func copyfile()(writen int64,err error)

defer src.close()

dst,err := os.openfile("dst.txt",os.o_wronly|os.o_create,0644)

if err!=nil

defer dst.close()

return io.copy(dst,src)

}func main()

os.args是乙個string的切片,用來儲存所有命令列的引數

但是通過這種方式獲取引數有點笨拙,並且需要做很多的判斷,我們可以通過go裡面的flag包來做,**例子如下:

package main

import (

"fmt"

"flag")

var(

conf string

level

int)

func init()

func main()

fmt.printf("conf is :%s\n",conf)

fmt.printf("level is :%d\n",level)

}

上面的例子設定了預設引數,如果我們想自定義引數在執行的時候新增 -c=內容 -l=內容 ,就可以用我們通過命令列引數傳入的值進行處理

PHP目錄操作和檔案操作

php 操作目錄 1,目錄操作概述 2,建立新目錄 mkdir 新建乙個由pathname指定的目錄,建立成功方式ture,否則為false bool mkdir string pathname,int mode 0777,bool recursive false pathname 指定目錄的路徑 ...

PHP的目錄操作和檔案操作

一 引論 在任何計算機裝置中,檔案是都是必須的物件,而在web程式設計中,檔案的操作一直是web程式設計師的頭疼的地方,而,檔案的操作在cms系統中這是必須的,非常有用的,我們經常遇到生成檔案目錄,檔案 夾 編輯等操作,現在我把php中的這些函式做一詳細總結並例項示範如何使用.關於對應的函式詳細介紹...

Python的檔案操作和檔案處理

2 檔案的相關操作 2 檔案的讀寫 3 二進位制檔案的讀寫 3 檔案和資料夾的操作 1 資料夾的操作 使用檔案的目的是儲存資料放在磁碟 將資料儲存起來,可以使程式下一次執行時直接使用,不必重新製作 1 開啟檔案 在python中,使用open函式,可以開啟乙個已經存在的檔案,或者建立乙個新檔案ope...