### 文件寫入
> func (f *File) Write(b []byte) (n int, err error)
> Write(b []byte)
Write向文件中寫入len(b)字節數據。它返回寫入的字節數和可能遇到的任何錯誤。如果返回值為n!=len(b),本方法會返回一個非nil的錯誤。
```
package main
import (
"fmt"
"os"
)
func write(path string, str string) {
// 寫入文件用Create 讀取用Open
file, err := os.Create(path)
if err != nil {
fmt.Println(err)
}
// str 傳的是值
data := str
for i := 0; i < 3; i++ {
file.Write([]byte(data))
}
file.Close()
}
// 寫入數據到 999.txt 內容
func main() {
// 路徑
write("E:\\flie\\999.txt", "寫入了123456789\r\n")
}
```
使用WriteAt可以指定位置寫入
> func (f *File) WriteAt(b []byte, off int64) (n int, err error)
> Write(b []byte)
Writeat在文件指定的位置(相對于文件開始的位置)寫入len(b)字節數據。它返回寫入的字節數和可能遇到的任何錯誤。如果返回值為n!=len(b),本方法會返回一個非nil的錯誤。
```
package main
import (
"fmt"
"os"
)
func write(path string, str string) {
// 寫入文件用Create 讀取用Open
file, err := os.Create(path)
if err != nil {
fmt.Println(err)
}
// str 傳的是值
data := str
for i := 0; i < 3; i++ {
// 按指定偏移量寫入數據
ix := i * 64
// strconv.Itoa(i)這是寫進去i
// file.WriteAt([]byte(data+strconv.Itoa(i)+"\r\n"), int64(ix))
file.WriteAt([]byte(data+"\r\n"), int64(ix))
}
file.Close()
}
// 寫入數據到 999.txt 內容
func main() {
// 路徑
write("E:\\flie\\999.txt", "寫入了123456789")
}
```
Write和WriteAt 寫入數據會覆蓋原文件,并且從文件開始處寫入內容
### 刪除文件
和刪除目錄操作類似
> **func Remove(name string) error**
> name string 傳入單個文件路徑
> **func RemoveAll(name string) error**
> >name string 傳入所有文件路徑
```
package main
import (
"fmt"
"os"
)
func delete() {
// 刪除文件
err := os.Remove("E:\\flie\\999.txt")
if err != nil {
fmt.Println(err)
} else {
fmt.Println("刪除單個文件成功")
}
// 刪除路徑下所有文件
err2 := os.RemoveAll("E:\\flie\\")
if err2 != nil {
fmt.Println(err2)
} else {
fmt.Println("刪除當前目錄所有文件成功")
}
}
func main() {
delete()
}
```
- 安裝開發環境
- 安裝開發環境
- 安裝詳細教程
- 引入包
- Go語言基礎
- 基本變量與數據類型
- 變量
- 數據類型
- 指針
- 字符串
- 代碼總結
- 常量與運算符
- 常量
- 運算符
- 流程控制
- if判斷
- for循環
- switch分支
- goto跳轉
- 斐波那契數列
- Go語言內置容器
- 數組
- 切片
- 映射
- 函數
- 函數(上)
- 函數(中)
- 函數(下)
- 小節
- 包管理
- 結構體
- 結構體(上)
- 結構體(中)
- 結構體(下)
- 小節
- 錯誤處理
- 錯誤處理
- 宕機
- 錯誤應用
- 小節
- 文件操作
- 獲取目錄
- 創建和刪除目錄
- 文件基本操作(上)
- 文件基本操作(中)
- 文件基本操作(下)
- 處理JSON文件
- 接口與類型
- 接口的創建與實現
- 接口賦值
- 接口嵌入
- 空接口
- 類型斷言(1)
- 類型斷言(2)
- 小節
- 并發與通道
- goroutine協程
- runtime包
- 通道channel
- 單向通道channel
- select
- 線程同步
- 多線程的深入學習
- http編程
- http簡介
- Client和Request
- get請求
- post請求
- 模塊函數方法
- 模塊
- fmt庫,模塊
- 項目練習
- 爬蟲:高三網
- 爬蟲:快代理
- 爬蟲:快代理2
- 多線程:通道思路
- 多線程爬蟲:快代理