修改部分描述,添加必要的标点符号,补充代码超链接 (#804)

This commit is contained in:
Jck
2021-10-25 23:34:42 +08:00
committed by GitHub
parent d5578df00a
commit 39dbdb7094
100 changed files with 433 additions and 414 deletions

View File

@@ -45,7 +45,7 @@ func main() {
接着,我们在一个无限循环中使用 `ReadString('\n')``ReadBytes('\n')` 将文件的内容逐行(行结束符 '\n')读取出来。
**注意:** 在之前的例子中我们看到UnixLinux的行结束符是 \n而Windows的行结束符是 \r\n。在使用 `ReadString``ReadBytes` 方法的时候,我们不需要关心操作系统的类型,直接使用 \n 就可以了。另外,我们也可以使用 `ReadLine()` 方法来实现相同的功能。
**注意:** 在之前的例子中我们看到UnixLinux 的行结束符是 \n Windows 的行结束符是 \r\n。在使用 `ReadString``ReadBytes` 方法的时候,我们不需要关心操作系统的类型,直接使用 \n 就可以了。另外,我们也可以使用 `ReadLine()` 方法来实现相同的功能。
一旦读取到文件末尾,变量 `readerError` 的值将变成非空(事实上,其值为常量 `io.EOF`),我们就会执行 `return` 语句从而退出循环。
@@ -160,7 +160,7 @@ filename := filepath.Base(path)
```
每行的第一个字段为 title第二个字段为 price第三个字段为 quantity。内容的格式基本与 示例 12.3c 的相同,除了分隔符改成了分号。请读取出文件的内容,创建一个结构用于存取一行的数据,然后使用结构的切片,并把数据打印出来。
关于解析 CSV 文件,`encoding/csv` 包提供了相应的功能。具体请参考 [http://golang.org/pkg/encoding/csv/](http://golang.org/pkg/encoding/csv/)
关于解析 CSV 文件,`encoding/csv` 包提供了相应的功能。具体请参考 [http://golang.org/pkg/encoding/csv/](http://golang.org/pkg/encoding/csv/)
## 12.2.2 `compress`包:读取压缩文件
@@ -258,9 +258,9 @@ outputFile, outputError := os.OpenFile("output.dat", os.O_WRONLY|os.O_CREATE, 06
- `os.O_RDONLY`:只读
- `os.O_WRONLY`:只写
- `os.O_CREATE`:创建:如果指定文件不存在,就创建该文件。
- `os.O_TRUNC`:截断:如果指定文件已存在,就将该文件的长度截为0
- `os.O_TRUNC`:截断:如果指定文件已存在,就将该文件的长度截为 0
在读文件的时候,文件的权限是被忽略的,所以在使用 `OpenFile` 时传入的第三个参数可以用0。而在写文件时,不管是 Unix 还是 Windows都需要使用 0666。
在读文件的时候,文件的权限是被忽略的,所以在使用 `OpenFile` 时传入的第三个参数可以用 0 。而在写文件时,不管是 Unix 还是 Windows都需要使用 0666。
然后,我们创建一个写入器(缓冲区)对象:
@@ -310,7 +310,7 @@ type Page struct {
}
```
请给这个结构编写一个 `save` 方法,将 Title 作为文件名、Body作为文件内容写入到文本文件中。
请给这个结构编写一个 `save` 方法,将 Title 作为文件名、Body 作为文件内容,写入到文本文件中。
再编写一个 `load` 函数,接收的参数是字符串 title该函数读取出与 title 对应的文本文件。请使用 `*Page` 做为参数,因为这个结构可能相当巨大,我们不想在内存中拷贝它。请使用 `ioutil` 包里的函数参考章节12.2.1)。