Go语言bufio包的使用

准备文本文件

  • rpc_intro.txt
RPC(Remote Procedure Call,远程过程调用)是一种计算机通信协议,  允许调用不同进程空间的程序。RPC 的客户端和服务器可以在一台机器上,也可以在不同的机器上。程序员使用时,就像调用本地程序一样,无需关注内部的实现细节。

不同的应用程序之间的通信方式有很多,比如浏览器和服务器之间广泛使用的基于 HTTP 协议的 Restful API。与 RPC 相比,Restful API 有相对统一的标准,因而更通用,兼容性更好,支持不同的语言。HTTP 协议是基于文本的,一般具备更好的可读性。但是缺点也很明显:

Restful 接口需要额外的定义,无论是客户端还是服务端,都需要额外的代码来处理,而 RPC 调用则更接近于直接调用。
基于 HTTP 协议的 Restful 报文冗余,承载了过多的无效信息,而 RPC 通常使用自定义的协议格式,减少冗余报文。
RPC 可以采用更高效的序列化协议,将文本转为二进制传输,获得更高的性能。
因为 RPC 的灵活性,所以更容易扩展和集成诸如注册中心、负载均衡等功能。
  • bufio.go
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	/*
		bufio:高效io读写
			buffer缓存
			io: input/output
		将io包下的Reader,Writer对象进行封装,带缓存的包装,提高读写效率
			ReadBytes()
			ReadString()
			ReadLine()
	*/
	fileName := "D:\\桌面\\projects\\goprojects\\Golang仓库\\Golang\\01-go-basic\\bufio\\rpc_intro.txt"
	file, err := os.Open(fileName)
	if err != nil {
		fmt.Printf("error:%v\n", err)
		return
	}
	defer file.Close()

	// 创建reader对象
	b1 := bufio.NewReader(file)
	p := make([]byte, 1024)
	n1, err := b1.Read(p)
	fmt.Println(n1)
	fmt.Println(string(p[:n1]))
}

  • 输出
1024
RPC(Remote Procedure Call,远程过程调用)是一种计算机通信协议,  允许调用不同进程
空间的程序。RPC 的客户端和服务器可以在一台机器上,也可以在不同的机器上。程序员使
用时,就像调用本地程序一样,无需关注内部的实现细节。

不同的应用程序之间的通信方式有很多,比如浏览器和服务器之间广泛使用的基于 HTTP 协
议的 Restful API。与 RPC 相比,Restful API 有相对统一的标准,因而更通用,兼容性 
更好,支持不同的语言。HTTP 协议是基于文本的,一般具备更好的可读性。但是缺点也很 
明显:

Restful 接口需要额外的定义,无论是客户端还是服务端,都需要额外的代码来处理,而 R
PC 调用则更接近于直接调用。
基于 HTTP 协议的 Restful 报文冗余,承载了过多的无效信息,而 RPC 通常使用自定义的
协议格式,减少冗余报文。
RPC 可以采用更高效的序列化协议,将文本转为二

你可能感兴趣的:(golang,开发语言,后端)