2024年最新Golang之IO操作_go readshort readint(2),Golang程序员架构之路该如何继续学习

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

fmt.Println("hello world", "china", 2021)
// 不带换行符, 单纯输出
fmt.Print("你好", 666, "\n")
// 格式化输出, 不换行
fmt.Printf("hello %s %d\n", "chao", 2021)
// 自动识别格式化参数的类型
fmt.Printf("name: %v age: %v\n", "chao", 25)

// 获取到格式化后的字符串
str := fmt.Sprintf("float %f", 3.1415926)
fmt.Println(str)

// 输入到指定写入器, io.Writer 为接口类型, os.Stdout实现了该接口, 输出到当前终端
fmt.Fprintln(os.Stdout, "A")

}


2. 基本 IO 接口



package main

import (
“fmt”
“io”
“os”
“strings”
)

// ReadFrom 从不同的输入源读取
func ReadFrom(reader io.Reader, num int) ([]byte, error) {
// 开辟内存空间
p := make([]byte, num)
// 将数组读取到变量中
n, err := reader.Read§
if n > 0 {
return p[:n], nil
}
return p, err
}

// 字符串中读取
func fromString() {
// 创建字符串读取器, strings.Reader 实现了 io.Reader
data, _ := ReadFrom(strings.NewReader(“from string”), 12)
fmt.Println(data)
}

// 从命令行中读取
func fromStdin() {
fmt.Println(“please input from stdin:”)
data, _ := ReadFrom(os.Stdin, 11)
fmt.Println(data)
}

// 从文件中读取
func fromFile() {
// 打开文件资源
file, _ := os.Open(“main.go”)
// 关闭文件资源
defer file.Close()

data, \_ := ReadFrom(file, 10)
fmt.Println(data)

}

func main() {
fromString() // [102 114 111 109 32 115 116 114 105 110 103]
fromStdin() // chao [99 104 97 111 10]
fromFile() //
}


3. 缓存 IO 接口



package main

import (
“bufio”
“fmt”
“os”
“strings”
)

// 缓冲 IO

func main() {
// 创建一个字符串读取器
strReader := strings.NewReader(“hello world”)

// 创建缓冲读取器
bufReader := bufio.NewReader(strReader)

// 读取指定大小的数据, 只读不取, 读出后缓存区字符大小不变
data, \_ := bufReader.Peek(5)
// Buffered 当前读取器缓冲的字符大小
fmt.Println(string(data), bufReader.Buffered()) // hello 11

// 读后又取, 读出后缓存区字符大小改变为剩下的字符大小
str, \_ := bufReader.ReadString(' ')    // 遇到空格后停止读取
fmt.Println(str, bufReader.Buffered()) // hello 5

// 写入器
writer := bufio.NewWriter(os.Stdout)
fmt.Fprintln(writer, "hello!")
fmt.Fprintln(writer, "world!")
writer.Flush() // 提交, 将缓冲区的数据写入终端

}




![img](https://img-blog.csdnimg.cn/img_convert/37b81da7054ed01ff73fcd6ad2aca551.png)
![img](https://img-blog.csdnimg.cn/img_convert/ee1afb7f90b80c3c86730f25d6081c57.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.youkuaiyun.com/topics/618658159)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

//bbs.youkuaiyun.com/topics/618658159)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值