国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Golang 中的 Io 包詳解(一):基礎(chǔ)接口

開發(fā) 前端
Read 方法讀取長度為 len(p) 字節(jié)的數(shù)據(jù)到 p 中,返回兩個(gè)參數(shù),讀取數(shù)據(jù)的字節(jié)數(shù)(0 <= n <= len(p))和 error 信息。當(dāng) Read 在讀取 n>0 個(gè)字節(jié)后遇到錯(cuò)誤或 EOF 時(shí),返回讀取的字節(jié)數(shù)和一個(gè)可能為非空的 error,下次接著讀取時(shí),會(huì)返回 0 和 非空 error。

Golang 中的 io 包提供了許多用于處理 I/O(輸入輸出) 操作的接口和函數(shù),在許多標(biāo)準(zhǔn)庫中都可以看到這些接口和函數(shù)的應(yīng)用。本文首先介紹一下 io 包的幾個(gè)基礎(chǔ)接口。

io.Reader

io.Reader 表示任何可以讀取數(shù)據(jù)的對(duì)象,定義了基本的 Read 方法。

type Reader interface {
	Read(p []byte) (n int, err error)
}

Read 方法讀取長度為 len(p) 字節(jié)的數(shù)據(jù)到 p 中,返回兩個(gè)參數(shù),讀取數(shù)據(jù)的字節(jié)數(shù)(0 <= n <= len(p))和 error 信息。當(dāng) Read 在讀取 n>0 個(gè)字節(jié)后遇到錯(cuò)誤或 EOF 時(shí),返回讀取的字節(jié)數(shù)和一個(gè)可能為非空的 error,下次接著讀取時(shí),會(huì)返回 0 和 非空 error。看個(gè)示例:

package main

import (
	"fmt"
	"io"
	"os"
)

func main() {
	f, err := os.Open("test.txt")
	if err != nil {
		panic(err)
	}
	defer f.Close()

	buf := make([]byte, 4) // 實(shí)例化一個(gè)長度為4的[]byte
	i := 0
	for {
		i++
		n, err := f.Read(buf) 
		fmt.Printf("第 %d 次讀取, ", i)
		fmt.Printf("返回行數(shù):%d,error 信息:%v ", n, err)

		if n == 0 || err == io.EOF {
			fmt.Println("文件以讀取完畢")
			break
		}
		fmt.Printf("讀取內(nèi)容:%s \n", string(buf[:n]))
	}
}

將 test.txt 文件內(nèi)容設(shè)置為 3 個(gè)字節(jié) lud,運(yùn)行看下效果:

第 1 次讀取, 返回行數(shù):3,error 信息:<nil> 讀取內(nèi)容:lud 
第 2 次讀取, 返回行數(shù):0,error 信息:EOF 文件以讀取完畢

將 test.txt 文件內(nèi)容設(shè)置為 4 個(gè)字節(jié) ludu,運(yùn)行看下效果:

第 1 次讀取, 返回行數(shù):4,error 信息:<nil> 讀取內(nèi)容:ludu 
第 2 次讀取, 返回行數(shù):0,error 信息:EOF 文件以讀取完畢

將 test.txt 文件內(nèi)容設(shè)置為 5 個(gè)字節(jié) luduo,運(yùn)行看下效果:

第 1 次讀取, 返回行數(shù):4,error 信息:<nil> 讀取內(nèi)容:ludu 
第 2 次讀取, 返回行數(shù):1,error 信息:<nil> 讀取內(nèi)容:o 
第 3 次讀取, 返回行數(shù):0,error 信息:EOF 文件以讀取完畢

io.Writer

Writer 接口表示一個(gè)可以寫入數(shù)據(jù)的對(duì)象,定義了基本的 Write 方法。

type Writer interface {
	Write(p []byte) (n int, err error)
}

Write方法寫入長度為 len(p) 字節(jié)的數(shù)據(jù)到基本數(shù)據(jù)流中,返回實(shí)際寫入的字節(jié)數(shù) n 和 error 信息。若 Write 返回的 n < len(p),同時(shí)會(huì)返回一個(gè)非 nil 的 error。簡單示例如下:

package main

import (
	"fmt"
	"os"
)

func main() {
	file, err := os.Create("file.txt")
	if err != nil {
		panic(err)
	}

	defer file.Close()

	data := []byte("luduoxin's blog")

	n, err := file.Write(data)
	if err != nil {
		panic(err)
	}

	fmt.Printf("%d bytes written", n)
}

io.Closer

Closer 接口表示可以關(guān)閉的對(duì)象,定義了一個(gè)基本的 Close 方法,通常在完成讀寫后關(guān)閉IO流以釋放資源。

type Closer interface {
	Close() error
}

Close 方法用于釋放資源,返回可能出現(xiàn)的 error,簡單示例如下:

import (
    "os"
)

func main() {
    file, err := os.Create("file.txt")
    if err != nil {
        panic(err)
    }

    // 在文件使用結(jié)束后,需要調(diào)用 Close 方法釋放資源。
    defer file.Close()

    // 文件讀寫操作...
}

io.Seeker

Seeker 接口表示可以隨機(jī)讀寫的對(duì)象,定義了基本的 Seek 方法。Seek方法定位到給定偏移量位置,返回新的 offset 和 error 信息。

type Seeker interface {
	Seek(offset int64, whence int) (int64, error)
}

Seek 方法將當(dāng)前讀或?qū)懳恢迷O(shè)置為距離偏移量 offset 個(gè)字節(jié)之后的位置。參數(shù) whence 可以是 0、1 或 2:

  • 參數(shù) whence 為 0 時(shí),表示相對(duì)于文件起始位置,offset 必須為非負(fù)數(shù)。
  • 參數(shù) whence 為 1 時(shí),表示相對(duì)于當(dāng)前位置,offset 可以為負(fù)數(shù)。
  • 參數(shù) whence 為 2 時(shí),表示相對(duì)于文件結(jié)尾,offset 可以為負(fù)數(shù)。

Seek 方法將返回新的偏移量和可能出現(xiàn)的錯(cuò)誤。示例如下:

package main

import (
	"fmt"
	"io"
	"os"
)

func main() {
	file, err := os.Create("file.txt")
	if err != nil {
		panic(err)
	}

	defer file.Close()

	// 寫入數(shù)據(jù)到文件中...
	file.Write([]byte("hello world"))

	// 將文件指針移動(dòng)到文件開頭
	file.Seek(0, io.SeekStart)

	// 從文件中讀取數(shù)據(jù)到切片中
	buf := make([]byte, 5)
	file.Read(buf)
	fmt.Println(string(buf)) // 輸出 hello

	// 將文件指針移動(dòng)到文件末尾
	file.Seek(0, io.SeekEnd)

	// 在文件末尾進(jìn)行寫入操作
	file.Write([]byte("golang"))
}

通過調(diào)用 Seek 方法將文件指針移動(dòng)到文件開頭,并從文件中讀取了數(shù)據(jù),接下來將文件指針移動(dòng)到文件末尾,并在文件末尾寫入了新的數(shù)據(jù)。

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2023-08-03 08:48:07

Golang接口

2023-08-08 14:51:29

2023-08-07 09:18:32

Golang偏移量接口

2023-08-31 09:28:12

Golang可導(dǎo)出函數(shù)

2023-08-28 17:16:51

Golangio 包

2023-05-12 09:40:53

ContextGolang

2023-03-30 07:52:03

Golang接口

2023-11-27 15:02:37

BytesGolang

2023-10-18 08:22:38

BufioGolang

2023-11-03 08:53:15

StrconvGolang

2023-10-07 09:08:32

Golangbufio

2023-10-10 08:57:44

Golangbufio

2023-09-05 08:22:44

Golangstrings 包

2024-01-18 09:07:04

Errors函數(shù)Golang

2023-09-06 09:10:04

Golang字符串

2023-11-07 09:02:07

Golangbytes

2023-09-07 07:35:54

GolangBufio

2023-09-04 08:17:37

Golangstrings 包

2023-11-13 21:55:12

Go編程

2023-05-15 08:50:58

ContextGolang
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

中文字幕影音在线| 日韩精品免费观看视频| 黄页网站在线观看免费| 中文字幕日韩高清在线| 成人午夜免费电影| 91成人天堂久久成人| 亚洲视频第二页| 激情图片小说一区| 成人免费在线看片| 一区二区视频| 久久精品一区二区三区四区| 欧美大片免费看| 五月天久久狠狠| 精品一区二区三区四区五区| 久久久久9999亚洲精品| 亚洲精品一区二区三区影院| 日本视频精品一区| 午夜无码国产理论在线| 乱码第一页成人| 日韩免费电影一区| 99免费在线观看视频| 国产私拍精品| 国产在线播放一区二区三区| 精品欧美久久久| 精品久久久久久乱码天堂| 欧美私人网站| 国产尤物精品| 91亚洲精华国产精华精华液| 亚洲女人天堂视频| 久久人人看视频| 美女av在线免费观看| 亚洲综合av一区二区三区| 日韩精品久久理论片| 91黄视频在线| 国产九色精品| 色视频免费在线观看| 久久久亚洲精品视频| 91av视频在线播放| www.成人.com| 国产精品密蕾丝视频下载| 天天色天天操综合| 91精品视频免费观看| 国产女大学生av| www.神马久久| 欧美日韩免费一区| 先锋影音网一区| 欧美亚洲高清| 日韩欧美一区二区三区在线| av一级在线| 日产国产欧美视频一区精品| 精品女同一区二区| 伊人网在线观看| 波多野结衣精品在线| 自拍亚洲一区欧美另类| 毛片在线视频观看| 中出一区二区| 亚洲精品美女网站| 国产v亚洲v天堂无码久久久| 欧美日韩国产免费观看| 久久久噜久噜久久综合| 欧美78videosex性欧美| 日韩电影在线观看永久视频免费网站 | 搞黄视频免费在线观看| 午夜激情一区| 在线成人激情视频| 日韩少妇内射免费播放18禁裸乳| 欧美国产高清| 久久躁狠狠躁夜夜爽| 欧美一卡二卡三卡| 欧美高清xxxxxkkkkk| 9999国产精品| 日韩中文字幕免费| 高清欧美精品xxxxx在线看| 亚洲天堂偷拍| 久久久久久久久久久久久久久久av | 日本福利专区在线观看| 久久久99精品久久| 日韩有码免费视频| 欧美精品观看| 欧美激情2020午夜免费观看| 黄色av电影在线观看| 色婷婷精品久久二区二区蜜臂av | 国产亚洲自拍偷拍| 中文字幕高清在线播放| 亚洲一区二区三区四区五区黄| 欧美aⅴ在线观看| 99久久精品国产一区二区三区 | 精品国内亚洲在观看18黄| 韩国日本在线视频| 久久国产精品第一页| 岛国视频一区免费观看| 曰本一区二区三区视频| 欧美成人三级视频网站| 国精品产品一区| 精品国产一区二区三区久久久| 日本在线中文字幕一区二区三区| 欧美精品99久久久**| 性感美女激情视频在线观看| 亚洲成a天堂v人片| 日本成人免费网站| 亚洲欧美一区二区三区国产精品| 日本小视频在线免费观看| 欧美性色视频在线| 午夜成在线www| 第一福利永久视频精品| 国产私拍精品| 69堂亚洲精品首页| 国产在线精彩视频| 亚洲精品www| h1515四虎成人| 国产精品99久久久久久白浆小说 | 国产美女无遮挡网站| 91免费国产在线| 国产一二区在线观看| 色悠悠国产精品| 国产精品传媒| 热久久这里只有精品| 丁香一区二区| 欧美aaaaa喷水| 久久香蕉精品| 激情六月丁香| 精品欧美黑人一区二区三区| 日韩中文字幕视频网| 秋霞在线观看一区二区三区| 精品国产伦一区二区三区免费| 亚洲免费一区| 色呦呦网站入口| 欧美一区二区三区四区五区| 国产日产精品一区二区三区四区的观看方式 | 久久精品高清| 国产一级做a爰片久久毛片男| 99久精品国产| www99avcom| 国产ts一区二区| 国产精品一区二区三区四区| 同心难改在线观看| 国产精品高精视频免费| 91香蕉视频在线| 最新二区三区av| 欧美精品第一页在线播放| 亚洲精品社区| 黄视频在线播放| 五月天色一区| 亚洲片国产一区一级在线观看| 美女视频免费精品| 黄色直播在线| 日韩中文字幕精品| 成人国产视频在线观看| 国产黄色在线| 波多野结衣三级在线| 天天操天天干天天综合网| 欧美大片1688网站| 日本一区二区三区免费看| 国产午夜精品理论片a级探花| 日日夜夜精品视频免费| 国产精品99| 国产原创精品在线| 国产精品欧美日韩| 亚洲电影第三页| 亚洲国产欧美日韩在线观看第一区 | 中文字幕校园春色| 亚洲欧美日本精品| 国产成人三级在线观看| 7m精品国产导航在线| 国产美女高潮在线观看| 污污网站免费看| 精品国产乱码久久久久久蜜柚| 国产亚洲精品成人av久久ww| 欧洲一区二区三区在线| 美女精品在线观看| 自拍偷拍亚洲| 国产二区视频在线观看| 99久久免费观看| av动漫在线观看| 日韩欧美一区二区三区四区五区| 高清欧美性猛交xxxx| 欧美不卡一区二区| 欧美日韩国产一中文字不卡| 亚洲国产精品成人久久综合一区 | 精品伦精品一区二区三区视频| 欧美白人最猛性xxxxx69交| 国产精品自产自拍| 色综合蜜月久久综合网| 亚洲日本网址| 国产视频在线播放| 成人在线二区| 茄子视频成人免费观看| 欧美亚洲另类激情另类| 欧美裸体bbwbbwbbw| 久久99精品久久久久久国产越南| 亚洲综合在线电影| 是的av在线| 亚洲国产天堂久久综合网| 米奇777在线欧美播放| 成人影院中文字幕| 在线视频亚洲专区| 人人玩人人添人人澡欧美| 成人午夜影院| 日日摸天天爽天天爽视频| 欧美一区2区三区4区公司二百|