第一种按字节读(有中文的txt有乱码的可能)
package main
import (
"fmt"
"os"
)
func main() {
i, v := os.Open("C:\\Users\\dntech\\GolandProjects\\awesomeProject\\dat1\\gg.txt") //打开文件
if v != nil { //如果报错了进入if
fmt.Println("打开文件失败", v)
return
}
defer i.Close() //最后关闭文件
var k = make([]byte, 128) //创建一个容量为128字节的切片
for {
h, l := i.Read(k) //开始读取,把读取的数据放入切片k中,h是读取了多少字节,l是报错信息
fmt.Println(string(k[:h]), h, l) //打印读取的内容
if h < 128 {
return
}
}
}
第二种按行读取
package main
import (
"bufio"
"fmt"
"io"
"os"
)
func main() {
i, v := os.Open("C:\\Users\\dntech\\GolandProjects\\awesomeProject\\dat1\\gg.txt") //打开文件
if v != nil { //如果报错了进入if
fmt.Println("打开文件失败", v)
return
}
defer i.Close() //最后关闭文件
h := bufio.NewReader(i)
for {
l, err := h.ReadString('\n') //读到换行
fmt.Print(l)
if err == io.EOF { //如果读到末尾就会进入
return
}
}
}
第三种
package main
import (
"fmt"
"io/ioutil"
)
func main() {
var k = make([]byte, 128)
k, _ = ioutil.ReadFile("C:\\Users\\dntech\\GolandProjects\\awesomeProject\\dat1\\gg.txt")
fmt.Print(string(k))
}