```
//打文件小文件都適用
package main
import (
"bufio"
"fmt"
"io"
"os"
)
func main() {
//打開文件
file, err := os.Open("test.txt") //返回的是指針(文件句柄)
if err != nil {
fmt.Println("open file err=", err)
return
}
defer file.Close() //函數退出時會關閉文件
fmt.Printf("file ptr=%v\\n", file)
reader := bufio.NewReader(file)
for {
str, err := reader.ReadString('\\n') //讀到換行就結束一次
if err == io.EOF {
fmt.Print(str) //這里不加會遺漏最后一行
//文件結束
break
} else if err != nil {
fmt.Println("讀取錯誤", err)
break
}
fmt.Print(str)
}
fmt.Printf("文件讀取結束")
}
```
```
//小文件可用
package main
import (
"fmt"
"io/ioutil"
)
func main() {
//打開文件
file, err := ioutil.ReadFile("test.txt") //不需要close file是[]byte
if err != nil {
fmt.Println("ReadFile err=", err)
return
}
? ? fmt.Printf("%v", string(file))
}
```
- 數據類型
- 數組array
- 切片slice
- 字符串string
- map
- 結構體struct
- 方法func
- 匿名結構體(繼承)
- 字段別名
- 接口interface
- 常量
- 基礎語法
- 循環for
- 遍歷
- 函數func
- defer
- 異常處理error
- 訪問范圍
- 包
- 類型斷言
- 文件
- 打開文件
- 讀取文件
- 寫文件
- 判斷是否存在
- 拷貝文件
- JSON
- 序列化
- 反序列化
- 命令行
- 雜項
- Windows下配置加速
- 相關鏈接
- 占位符
- 隨機數rand
- 單元測試
- goroutine
- 并發和并行
- 協程和主線程
- MPG模式
- 設置CPU數量
- 全局互斥鎖
- 管道
- 示例1
- 示例2
- select
- 異常捕獲
- 反射
- 示例
- 示例-改變值
- 網絡編程
- TCP編程
- 示例一
- redis