[TOC]
<br>
<br>
>[success] ## **1:文件基本介紹(os)**
文件:是數據源(**所謂數據源就是保存數據的**)一種,比如我們常用的excel,word,txt,都是文件,**文件最主要的作用就是保存數據**,它既可以保存一張圖片,也可以保存視頻,聲音等等
**文件在程序中是以流的形式來操作的**

**流**:數據在數據源【文件】和程序【內存】之間經歷的路徑
**輸入流**:數據從數據源【文件】到程序【內存】的路徑
**輸出流**:數據從程序【內存】到數據源【文件】的路徑
* [ ] os.File封裝所有文件相關操作,file是一個結構體圖如下

總結:文件操作會很平凡的使用到【os】包,os.File結構體
<br>
<br>
>[success] ## **2:文件打開與關閉(open,Close)**
### **1:打開文件:(open)**

**說明上面方法**:open是要讀取那個文件的路徑,file是接受一個指針類型,返回一個error
### **2:關閉文件(close)**

**說明**:關閉是調用f來關閉,返回error
<br>
<br>
>[success] ## **3:案例演示**

<br>
<br>
>[success] ## **4:讀文件操作應用實例**
1)**讀取文件的內容并顯示在終端**(帶**緩沖區**的方式),使用os.Open,file,Close,bufio,NewReader(),帶緩沖區的好處結束可以讀大型
**bufio 包介紹**
bufio包實現了有緩沖的I/O。它包裝一個io.Reader或io.Writer接口對象,創建另一個也實現了該接口,且同時還提供了緩沖和一些文本I/O的幫助函數的對象。以上為官方包的介紹,在其中我們能了解到的信息如下:
**bufio 是通過緩沖來提高效率**
簡單的說就是,把文件讀取進緩沖(內存)之后再讀取的時候就可以避免文件系統的io 從而提高速度。同理,在進行寫操作時,先把文件寫入緩沖(內存),然后由緩沖寫入文件系統。看完以上解釋有人可能會表示困惑了,直接把 內容\->文件 和 內容\->緩沖\->文件相比, 緩沖區好像沒有起到作用嘛。其實緩沖區的設計是為了存儲多次的寫入,最后一口氣把緩沖區內容寫入文件。下面會詳細解釋
**bufio 封裝了io.Reader或io.Writer接口對象,并創建另一個也實現了該接口的對象**
**io.Reader或io.Writer 接口實現read() 和 write() 方法,對于實現這個接口的對象都是可以使用這兩個方法的**
**代碼實現:**

<br>
<br>
2)讀取文件的內容并顯示在終端(使用ioutil - -次將整個文件讀入到內存中),**這種方式適用于文件不大的情況**。相關方法和函數(ioutil .ReadFile)

<br>
**代碼演示:**

- Golang語言之旅
- 第一章:初始小節以及安裝
- 一:Golang語言特性
- 二:Windows上安裝Go語言開發包
- 三:在Mac OS上安裝Go語言開發包
- 第二章:GO語言注意事項
- 一:Dos的常用指令
- 第三章:Go初識小菜
- 一:Go語言之變量與常量
- 二:Go內置值-引用類型
- 三:基本的數據類型
- 四:字符串(char)
- 五:布爾類型(bool)
- 六:字符串類型(string)
- 七:基本數據類型的默認值
- 八:基本數據類型的互相轉換
- 九:基本數據類型和string類型的相互轉換
- 十:Golang指針
- 十一:值類型和引用類型
- 十二:標識符和命名規范
- 十三:系統保留關鍵字and預定義標識符
- 十四:fmt常用方法解析
- 第四章:Go運算符
- 一:運算符的基本介紹
- 二:算術運算符
- 2.1:算數運算符細節
- 三:關系運算符
- 3.1:關系運算符細節
- 四:邏輯運算符
- 4.1:邏輯運算符細節及案例
- 五:Go賦值運算符
- 5.1:案例演示賦值運算符的基本使用
- 5.2:賦值運算符的特點
- 六:Go位運算符
- 七:其他運算符
- 八:運算符的優先級
- 九:控制臺輸入語句
- 十:進制
- 十一:位運算
- 第五章:流程控制大綱
- 一:if語句
- 二:switch語句
- 三:for循環
- 第六章:函數-包-錯誤處理
- 一:Go函數
- 二:Go包
- 三:匿名函數
- 四:閉包
- 五:函數defer
- 六:函數參數的傳遞方式
- 七:變量的作用域
- 八:時間和日期相關函數
- 九:new和recover異常
- 十:數組(Array)切片(Section)
- 十一:切片(slice)
- 十二:3 數組的排序和查找
- 第七章:Map
- 第一節:Map基礎認識
- 第二節:Map初始化和make
- 第三節:Map增刪改查
- 第四節:Map的切片
- 第五節:Map的注意事項
- 第八章:面向對象(上)
- 第一節:結構體(值類型)
- 第二節:方法
- 第三節:面向對象編程應用實例
- 第九章:面向對象(下)
- 第一節:面向對象之抽象
- 第二節:面向對象之繼承
- 第三節:面向對象之多態
- 第四節:接口
- 第十章:文件操作
- 第一節:文件基本介紹
- 第二季:寫文件實例操作
- 第三節:JSON
- 第十一章:單元測試
- 第一節:單元測試介紹
- 第二節:單元測試案例
- 第三節:單元測試總結
- 第四節:單元測試案例
- 第十二章:goroutine和channel
- 第一節:goroutine基本介紹
- 第二節:goroutine入門案例
- 第三節:goroutione調度模型
- 第四節:Golang設置運行的CPU數量
- 第十二章:channel
- 第一節:channel基本介紹
- 第二節:channel基本使用
- 第三節:channel案例演示
- 第四節:channel 使用的注意事項
- 第五節:channel練習題
- 第六節:channel的遍歷和關閉
- 第七節:goroutione和channel結合
- 第八節:channel細節處理
- 第十二章:并發模式
- 第十三章:反射reflect
- 第一節:反射基本介紹
- 第二節:反射重要的函數和概念
- 第三節:反射快速入門案例
- 第四節:反射注意事項
- 第五節:反射練習題
- 第六節:反射最佳實踐