mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-10-13 21:41:49 +08:00
422 lines
42 KiB
HTML
422 lines
42 KiB
HTML
<div class="container">
|
||
<h1 id="pkg-overview">package bytes</h1>
|
||
<p><code>import "bytes"</code>
|
||
</p><p>bytes包实现了操作[]byte的常用函数。本包的函数和strings包的函数相当类似。</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<h2 id="pkg-constants">Constants </h2>
|
||
<pre>const <span id="MinRead">MinRead</span> = 512</pre>
|
||
<p>MinRead是被Buffer.ReadFrom传递给Read调用的最小尺寸。只要该Buffer在保存内容之外有最少MinRead字节的余量,其ReadFrom方法就不会增加底层的缓冲。</p>
|
||
<h2 id="pkg-variables">Variables </h2>
|
||
<pre>var <span id="ErrTooLarge">ErrTooLarge</span> = <a href="errors.htm">errors</a>.<a href="errors.htm#New">New</a>("bytes.Buffer: too large")</pre>
|
||
<p>如果内存中不能申请足够保存数据的缓冲,ErrTooLarge就会被传递给panic函数。</p>
|
||
<h2 id="Compare">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes_decl.go?name=release#24" title="View Source">Compare</a> </h2>
|
||
<pre class="funcdecl">func Compare(a, b []<a href="builtin.htm#byte">byte</a>) <a href="builtin.htm#int">int</a></pre>
|
||
<p>Compare函数返回一个整数表示两个[]byte切片按字典序比较的结果(类同C的strcmp)。如果a==b返回0;如果a<b返回-1;否则返回+1。nil参数视为空切片。</p>
|
||
<div class="panel-group">
|
||
<div class="panel panel-default" id="example-Compare">
|
||
<div class="panel-heading" onclick="document.getElementById('ex-Compare').style.display = document.getElementById('ex-Compare').style.display=='none'?'block':'none';">Example</div>
|
||
<div class="panel-collapse collapse" id="ex-Compare">
|
||
<div class="panel-body">
|
||
<pre><span class="com">// Interpret Compare's result by comparing it to zero.</span>
|
||
var a, b []byte
|
||
if bytes.Compare(a, b) < 0 {
|
||
<span class="com">// a less b</span>
|
||
}
|
||
if bytes.Compare(a, b) <= 0 {
|
||
<span class="com">// a less or equal b</span>
|
||
}
|
||
if bytes.Compare(a, b) > 0 {
|
||
<span class="com">// a greater b</span>
|
||
}
|
||
if bytes.Compare(a, b) >= 0 {
|
||
<span class="com">// a greater or equal b</span>
|
||
}
|
||
<span class="com">// Prefer Equal to Compare for equality comparisons.</span>
|
||
if bytes.Equal(a, b) {
|
||
<span class="com">// a equal b</span>
|
||
}
|
||
if !bytes.Equal(a, b) {
|
||
<span class="com">// a not equal b</span>
|
||
}
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="panel panel-default" id="example-Compare--Search">
|
||
<div class="panel-heading" onclick="document.getElementById('ex-Compare--Search').style.display = document.getElementById('ex-Compare--Search').style.display=='none'?'block':'none';">Example (Search)</div>
|
||
<div class="panel-collapse collapse" id="ex-Compare--Search">
|
||
<div class="panel-body">
|
||
<pre><span class="com">// Binary search to find a matching byte slice.</span>
|
||
var needle []byte
|
||
var haystack [][]byte <span class="com">// Assume sorted</span>
|
||
i := sort.Search(len(haystack), func(i int) bool {
|
||
<span class="com">// Return haystack[i] >= needle.</span>
|
||
return bytes.Compare(haystack[i], needle) >= 0
|
||
})
|
||
if i < len(haystack) && bytes.Equal(haystack[i], needle) {
|
||
<span class="com">// Found it!</span>
|
||
}
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<h2 id="Equal">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes_decl.go?name=release#17" title="View Source">Equal</a> </h2>
|
||
<pre class="funcdecl">func Equal(a, b []<a href="builtin.htm#byte">byte</a>) <a href="builtin.htm#bool">bool</a></pre>
|
||
<p>判断两个切片的内容是否完全相同。</p>
|
||
<h2 id="EqualFold">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#646" title="View Source">EqualFold</a> </h2>
|
||
<pre class="funcdecl">func EqualFold(s, t []<a href="builtin.htm#byte">byte</a>) <a href="builtin.htm#bool">bool</a></pre>
|
||
<p>判断两个utf-8编码切片(将unicode大写、小写、标题三种格式字符视为相同)是否相同。</p>
|
||
<h2 id="Runes">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#593" title="View Source">Runes</a> </h2>
|
||
<pre class="funcdecl">func Runes(s []<a href="builtin.htm#byte">byte</a>) []<a href="builtin.htm#rune">rune</a></pre>
|
||
<p>Runes函数返回和s等价的[]rune切片。(将utf-8编码的unicode码值分别写入单个rune)</p>
|
||
<h2 id="HasPrefix">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#331" title="View Source">HasPrefix</a> </h2>
|
||
<pre class="funcdecl">func HasPrefix(s, prefix []<a href="builtin.htm#byte">byte</a>) <a href="builtin.htm#bool">bool</a></pre>
|
||
<p>判断s是否有前缀切片prefix。</p>
|
||
<h2 id="HasSuffix">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#336" title="View Source">HasSuffix</a> </h2>
|
||
<pre class="funcdecl">func HasSuffix(s, suffix []<a href="builtin.htm#byte">byte</a>) <a href="builtin.htm#bool">bool</a></pre>
|
||
<p>判断s是否有后缀切片suffix。</p>
|
||
<h2 id="Contains">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#81" title="View Source">Contains</a></h2>
|
||
<pre class="funcdecl">func Contains(b, subslice []<a href="builtin.htm#byte">byte</a>) <a href="builtin.htm#bool">bool</a></pre>
|
||
<p>判断切片b是否包含子切片subslice。</p>
|
||
<h2 id="Count">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#50" title="View Source">Count</a> </h2>
|
||
<pre class="funcdecl">func Count(s, sep []<a href="builtin.htm#byte">byte</a>) <a href="builtin.htm#int">int</a></pre>
|
||
<p>Count计算s中有多少个不重叠的sep子切片。</p>
|
||
<h2 id="Index">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#86" title="View Source">Index</a> </h2>
|
||
<pre class="funcdecl">func Index(s, sep []<a href="builtin.htm#byte">byte</a>) <a href="builtin.htm#int">int</a></pre>
|
||
<p>子切片sep在s中第一次出现的位置,不存在则返回-1。</p>
|
||
<h2 id="IndexByte">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes_decl.go?name=release#10" title="View Source">IndexByte</a> </h2>
|
||
<pre class="funcdecl">func IndexByte(s []<a href="builtin.htm#byte">byte</a>, c <a href="builtin.htm#byte">byte</a>) <a href="builtin.htm#int">int</a></pre>
|
||
<p>字符c在s中第一次出现的位置,不存在则返回-1。</p>
|
||
<h2 id="IndexRune">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#143" title="View Source">IndexRune</a> </h2>
|
||
<pre class="funcdecl">func IndexRune(s []<a href="builtin.htm#byte">byte</a>, r <a href="builtin.htm#rune">rune</a>) <a href="builtin.htm#int">int</a></pre>
|
||
<p>unicode字符r的utf-8编码在s中第一次出现的位置,不存在则返回-1。</p>
|
||
<h2 id="IndexAny">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#158" title="View Source">IndexAny</a> </h2>
|
||
<pre class="funcdecl">func IndexAny(s []<a href="builtin.htm#byte">byte</a>, chars <a href="builtin.htm#string">string</a>) <a href="builtin.htm#int">int</a></pre>
|
||
<p>字符串chars中的任一utf-8编码在s中第一次出现的位置,如不存在或者chars为空字符串则返回-1</p>
|
||
<h2 id="IndexFunc">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#510" title="View Source">IndexFunc</a> </h2>
|
||
<pre class="funcdecl">func IndexFunc(s []<a href="builtin.htm#byte">byte</a>, f func(r <a href="builtin.htm#rune">rune</a>) <a href="builtin.htm#bool">bool</a>) <a href="builtin.htm#int">int</a></pre>
|
||
<p>s中第一个满足函数f的位置i(该处的utf-8码值r满足f(r)==true),不存在则返回-1</p>
|
||
<h2 id="LastIndex">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#126" title="View Source">LastIndex</a> </h2>
|
||
<pre class="funcdecl">func LastIndex(s, sep []<a href="builtin.htm#byte">byte</a>) <a href="builtin.htm#int">int</a></pre>
|
||
<p>切片sep在字符串s中最后一次出现的位置,不存在则返回-1。</p>
|
||
<h2 id="LastIndexAny">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#183" title="View Source">LastIndexAny</a> </h2>
|
||
<pre class="funcdecl">func LastIndexAny(s []<a href="builtin.htm#byte">byte</a>, chars <a href="builtin.htm#string">string</a>) <a href="builtin.htm#int">int</a></pre>
|
||
<p>字符串chars中的任一utf-8字符在s中最后一次出现的位置,如不存在或者chars为空字符串则返回-1。</p>
|
||
<h2 id="LastIndexFunc">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#517" title="View Source">LastIndexFunc</a> </h2>
|
||
<pre class="funcdecl">func LastIndexFunc(s []<a href="builtin.htm#byte">byte</a>, f func(r <a href="builtin.htm#rune">rune</a>) <a href="builtin.htm#bool">bool</a>) <a href="builtin.htm#int">int</a></pre>
|
||
<p>s中最后一个满足函数f的unicode码值的位置i,不存在则返回-1。</p>
|
||
<h2 id="Title">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#443" title="View Source">Title</a> </h2>
|
||
<pre class="funcdecl">func Title(s []<a href="builtin.htm#byte">byte</a>) []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p align="left">返回s中每个单词的首字母都改为标题格式的拷贝。</p>
|
||
<p align="left">BUG: Title用于划分单词的规则不能很好的处理Unicode标点符号。</p>
|
||
<h2 id="ToLower">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#391" title="View Source">ToLower</a> </h2>
|
||
<pre class="funcdecl">func ToLower(s []<a href="builtin.htm#byte">byte</a>) []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>返回将所有字母都转为对应的小写版本的拷贝。</p>
|
||
<h2 id="ToLowerSpecial">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#404" title="View Source">ToLowerSpecial</a> </h2>
|
||
<pre class="funcdecl">func ToLowerSpecial(_case <a href="unicode.htm">unicode</a>.<a href="unicode.htm#SpecialCase">SpecialCase</a>, s []<a href="builtin.htm#byte">byte</a>) []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>使用_case规定的字符映射,返回将所有字母都转为对应的小写版本的拷贝。</p>
|
||
<h2 id="ToUpper">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#388" title="View Source">ToUpper</a> </h2>
|
||
<pre class="funcdecl">func ToUpper(s []<a href="builtin.htm#byte">byte</a>) []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>返回将所有字母都转为对应的大写版本的拷贝。</p>
|
||
<h2 id="ToUpperSpecial">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#398" title="View Source">ToUpperSpecial</a> </h2>
|
||
<pre class="funcdecl">func ToUpperSpecial(_case <a href="unicode.htm">unicode</a>.<a href="unicode.htm#SpecialCase">SpecialCase</a>, s []<a href="builtin.htm#byte">byte</a>) []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>使用_case规定的字符映射,返回将所有字母都转为对应的大写版本的拷贝。</p>
|
||
<h2 id="ToTitle">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#394" title="View Source">ToTitle</a> </h2>
|
||
<pre class="funcdecl">func ToTitle(s []<a href="builtin.htm#byte">byte</a>) []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>返回将所有字母都转为对应的标题版本的拷贝。</p>
|
||
<h2 id="ToTitleSpecial">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#410" title="View Source">ToTitleSpecial</a> </h2>
|
||
<pre class="funcdecl">func ToTitleSpecial(_case <a href="unicode.htm">unicode</a>.<a href="unicode.htm#SpecialCase">SpecialCase</a>, s []<a href="builtin.htm#byte">byte</a>) []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>使用_case规定的字符映射,返回将所有字母都转为对应的标题版本的拷贝。</p>
|
||
<h2 id="Repeat">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#378" title="View Source">Repeat</a> </h2>
|
||
<pre class="funcdecl">func Repeat(b []<a href="builtin.htm#byte">byte</a>, count <a href="builtin.htm#int">int</a>) []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>返回count个b串联形成的新的切片。</p>
|
||
<h2 id="Replace">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#608" title="View Source">Replace</a> </h2>
|
||
<pre class="funcdecl">func Replace(s, old, new []<a href="builtin.htm#byte">byte</a>, n <a href="builtin.htm#int">int</a>) []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>返回将s中前n个不重叠old切片序列都替换为new的新的切片拷贝,如果n<0会替换所有old子切片。</p>
|
||
<h2 id="Map">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#344" title="View Source">Map</a> </h2>
|
||
<pre class="funcdecl">func Map(mapping func(r <a href="builtin.htm#rune">rune</a>) <a href="builtin.htm#rune">rune</a>, s []<a href="builtin.htm#byte">byte</a>) []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>将s的每一个unicode码值r都替换为mapping(r),返回这些新码值组成的切片拷贝。如果mapping返回一个负值,将会丢弃该码值而不会被替换(返回值中对应位置将没有码值)。</p>
|
||
<h2 id="Trim">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#570" title="View Source">Trim</a> </h2>
|
||
<pre class="funcdecl">func Trim(s []<a href="builtin.htm#byte">byte</a>, cutset <a href="builtin.htm#string">string</a>) []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>返回将s前后端所有cutset包含的unicode码值都去掉的子切片。(共用底层数组)</p>
|
||
<h2 id="TrimSpace">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#588" title="View Source">TrimSpace</a> </h2>
|
||
<pre class="funcdecl">func TrimSpace(s []<a href="builtin.htm#byte">byte</a>) []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>返回将s前后端所有空白(unicode.IsSpace指定)都去掉的子切片。(共用底层数组)</p>
|
||
<h2 id="TrimFunc">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#485" title="View Source">TrimFunc</a> </h2>
|
||
<pre class="funcdecl">func TrimFunc(s []<a href="builtin.htm#byte">byte</a>, f func(r <a href="builtin.htm#rune">rune</a>) <a href="builtin.htm#bool">bool</a>) []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>返回将s前后端所有满足f的unicode码值都去掉的子切片。(共用底层数组)</p>
|
||
<h2 id="TrimLeft">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#576" title="View Source">TrimLeft</a> </h2>
|
||
<pre class="funcdecl">func TrimLeft(s []<a href="builtin.htm#byte">byte</a>, cutset <a href="builtin.htm#string">string</a>) []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>返回将s前端所有cutset包含的unicode码值都去掉的子切片。(共用底层数组)</p>
|
||
<h2 id="TrimLeftFunc">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#462" title="View Source">TrimLeftFunc</a> </h2>
|
||
<pre class="funcdecl">func TrimLeftFunc(s []<a href="builtin.htm#byte">byte</a>, f func(r <a href="builtin.htm#rune">rune</a>) <a href="builtin.htm#bool">bool</a>) []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>返回将s前端所有满足f的unicode码值都去掉的子切片。(共用底层数组)</p>
|
||
<h2 id="TrimPrefix">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#491" title="View Source">TrimPrefix</a> </h2>
|
||
<pre class="funcdecl">func TrimPrefix(s, prefix []<a href="builtin.htm#byte">byte</a>) []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>返回去除s可能的前缀prefix的子切片。(共用底层数组)</p>
|
||
<div class="panel-group">
|
||
<div class="panel panel-default" id="example-TrimPrefix">
|
||
<div class="panel-heading" onclick="document.getElementById('ex-TrimPrefix').style.display = document.getElementById('ex-TrimPrefix').style.display=='none'?'block':'none';">Example</div>
|
||
<div class="panel-collapse collapse" id="ex-TrimPrefix">
|
||
<div class="panel-body">
|
||
<pre>var b = []byte("Goodbye,, world!")
|
||
b = bytes.TrimPrefix(b, []byte("Goodbye,"))
|
||
b = bytes.TrimPrefix(b, []byte("See ya,"))
|
||
fmt.Printf("Hello%s", b)</pre>
|
||
<p>Output:
|
||
</p><pre>Hello, world!
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<h2 id="TrimRight">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#582" title="View Source">TrimRight</a> </h2>
|
||
<pre class="funcdecl">func TrimRight(s []<a href="builtin.htm#byte">byte</a>, cutset <a href="builtin.htm#string">string</a>) []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>返回将s后端所有cutset包含的unicode码值都去掉的子切片。(共用底层数组)</p>
|
||
<h2 id="TrimRightFunc">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#472" title="View Source">TrimRightFunc</a> </h2>
|
||
<pre class="funcdecl">func TrimRightFunc(s []<a href="builtin.htm#byte">byte</a>, f func(r <a href="builtin.htm#rune">rune</a>) <a href="builtin.htm#bool">bool</a>) []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>返回将s后端所有满足f的unicode码值都去掉的子切片。(共用底层数组)</p>
|
||
<h2 id="TrimSuffix">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#500" title="View Source">TrimSuffix</a> </h2>
|
||
<pre class="funcdecl">func TrimSuffix(s, suffix []<a href="builtin.htm#byte">byte</a>) []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>返回去除s可能的后缀suffix的子切片。(共用底层数组)</p>
|
||
<div class="panel-group">
|
||
<div class="panel panel-default" id="example-TrimSuffix">
|
||
<div class="panel-heading" onclick="document.getElementById('ex-TrimSuffix').style.display = document.getElementById('ex-TrimSuffix').style.display=='none'?'block':'none';">Example</div>
|
||
<div class="panel-collapse collapse" id="ex-TrimSuffix">
|
||
<div class="panel-body">
|
||
<pre>var b = []byte("Hello, goodbye, etc!")
|
||
b = bytes.TrimSuffix(b, []byte("goodbye, etc!"))
|
||
b = bytes.TrimSuffix(b, []byte("gopher"))
|
||
b = append(b, bytes.TrimSuffix([]byte("world!"), []byte("x!"))...)
|
||
os.Stdout.Write(b)</pre>
|
||
<p>Output:
|
||
</p><pre>Hello, world!
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<h2 id="Fields">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#262" title="View Source">Fields</a> </h2>
|
||
<pre class="funcdecl">func Fields(s []<a href="builtin.htm#byte">byte</a>) [][]<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>返回将字符串按照空白(unicode.IsSpace确定,可以是一到多个连续的空白字符)分割的多个子切片。如果字符串全部是空白或者是空字符串的话,会返回空切片。</p>
|
||
<h2 id="FieldsFunc">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#270" title="View Source">FieldsFunc</a> </h2>
|
||
<pre class="funcdecl">func FieldsFunc(s []<a href="builtin.htm#byte">byte</a>, f func(<a href="builtin.htm#rune">rune</a>) <a href="builtin.htm#bool">bool</a>) [][]<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>类似Fields,但使用函数f来确定分割符(满足f的utf-8码值)。如果字符串全部是分隔符或者是空字符串的话,会返回空切片。</p>
|
||
<h2 id="Split">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#250" title="View Source">Split</a> </h2>
|
||
<pre class="funcdecl">func Split(s, sep []<a href="builtin.htm#byte">byte</a>) [][]<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>用去掉s中出现的sep的方式进行分割,会分割到结尾,并返回生成的所有[]byte切片组成的切片(每一个sep都会进行一次切割,即使两个sep相邻,也会进行两次切割)。如果sep为空字符,Split会将s切分成每一个unicode码值一个[]byte切片。</p>
|
||
<h2 id="SplitN">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#233" title="View Source">SplitN</a> </h2>
|
||
<pre class="funcdecl">func SplitN(s, sep []<a href="builtin.htm#byte">byte</a>, n <a href="builtin.htm#int">int</a>) [][]<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>用去掉s中出现的sep的方式进行分割,会分割到最多n个子切片,并返回生成的所有[]byte切片组成的切片(每一个sep都会进行一次切割,即使两个sep相邻,也会进行两次切割)。如果sep为空字符,Split会将s切分成每一个unicode码值一个[]byte切片。参数n决定返回的切片的数目:</p>
|
||
<pre>n > 0 : 返回的切片最多n个子字符串;最后一个子字符串包含未进行切割的部分。
|
||
n == 0: 返回nil
|
||
n < 0 : 返回所有的子字符串组成的切片
|
||
</pre>
|
||
<h2 id="SplitAfter">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#256" title="View Source">SplitAfter</a> </h2>
|
||
<pre class="funcdecl">func SplitAfter(s, sep []<a href="builtin.htm#byte">byte</a>) [][]<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>用从s中出现的sep后面切断的方式进行分割,会分割到结尾,并返回生成的所有[]byte切片组成的切片(每一个sep都会进行一次切割,即使两个sep相邻,也会进行两次切割)。如果sep为空字符,Split会将s切分成每一个unicode码值一个[]byte切片。</p>
|
||
<h2 id="SplitAfterN">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#242" title="View Source">SplitAfterN</a> </h2>
|
||
<pre class="funcdecl">func SplitAfterN(s, sep []<a href="builtin.htm#byte">byte</a>, n <a href="builtin.htm#int">int</a>) [][]<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>用从s中出现的sep后面切断的方式进行分割,会分割到最多n个子切片,并返回生成的所有[]byte切片组成的切片(每一个sep都会进行一次切割,即使两个sep相邻,也会进行两次切割)。如果sep为空字符,Split会将s切分成每一个unicode码值一个[]byte切片。参数n决定返回的切片的数目:</p>
|
||
<pre>n > 0 : 返回的切片最多n个子字符串;最后一个子字符串包含未进行切割的部分。
|
||
n == 0: 返回nil
|
||
n < 0 : 返回所有的子字符串组成的切片
|
||
</pre>
|
||
<h2 id="Join">func <a href="https://github.com/golang/go/blob/master/src/bytes/bytes.go?name=release#308" title="View Source">Join</a> </h2>
|
||
<pre class="funcdecl">func Join(s [][]<a href="builtin.htm#byte">byte</a>, sep []<a href="builtin.htm#byte">byte</a>) []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>将一系列[]byte切片连接为一个[]byte切片,之间用sep来分隔,返回生成的新切片。</p>
|
||
<h2 id="Reader">type <a href="https://github.com/golang/go/blob/master/src/bytes/reader.go?name=release#17" title="View Source">Reader</a> </h2>
|
||
<pre>type Reader struct {
|
||
<span class="com">// 内含隐藏或非导出字段</span>
|
||
}</pre>
|
||
<p>Reader类型通过从一个[]byte读取数据,实现了io.Reader、io.Seeker、io.ReaderAt、io.WriterTo、io.ByteScanner、io.RuneScanner接口。</p>
|
||
<h3 id="NewReader">func <a href="https://github.com/golang/go/blob/master/src/bytes/reader.go?name=release#144" title="View Source">NewReader</a> </h3>
|
||
<pre class="funcdecl">func NewReader(b []<a href="builtin.htm#byte">byte</a>) *<a href="#Reader">Reader</a></pre>
|
||
<p>NewReader创建一个从s读取数据的Reader。</p>
|
||
<h3 id="Reader.Len">func (*Reader) <a href="https://github.com/golang/go/blob/master/src/bytes/reader.go?name=release#25" title="View Source">Len</a> </h3>
|
||
<pre class="funcdecl">func (r *<a href="#Reader">Reader</a>) Len() <a href="builtin.htm#int">int</a></pre>
|
||
<p>Len返回r包含的切片中还没有被读取的部分。</p>
|
||
<h3 id="Reader.Read">func (*Reader) <a href="https://github.com/golang/go/blob/master/src/bytes/reader.go?name=release#32" title="View Source">Read</a> </h3>
|
||
<pre class="funcdecl">func (r *<a href="#Reader">Reader</a>) Read(b []<a href="builtin.htm#byte">byte</a>) (n <a href="builtin.htm#int">int</a>, err <a href="builtin.htm#error">error</a>)</pre>
|
||
<h3 id="Reader.ReadByte">func (*Reader) <a href="https://github.com/golang/go/blob/master/src/bytes/reader.go?name=release#60" title="View Source">ReadByte</a> </h3>
|
||
<pre class="funcdecl">func (r *<a href="#Reader">Reader</a>) ReadByte() (b <a href="builtin.htm#byte">byte</a>, err <a href="builtin.htm#error">error</a>)</pre>
|
||
<h3 id="Reader.UnreadByte">func (*Reader) <a href="https://github.com/golang/go/blob/master/src/bytes/reader.go?name=release#70" title="View Source">UnreadByte</a> </h3>
|
||
<pre class="funcdecl">func (r *<a href="#Reader">Reader</a>) UnreadByte() <a href="builtin.htm#error">error</a></pre>
|
||
<h3 id="Reader.ReadRune">func (*Reader) <a href="https://github.com/golang/go/blob/master/src/bytes/reader.go?name=release#79" title="View Source">ReadRune</a> </h3>
|
||
<pre class="funcdecl">func (r *<a href="#Reader">Reader</a>) ReadRune() (ch <a href="builtin.htm#rune">rune</a>, size <a href="builtin.htm#int">int</a>, err <a href="builtin.htm#error">error</a>)</pre>
|
||
<h3 id="Reader.UnreadRune">func (*Reader) <a href="https://github.com/golang/go/blob/master/src/bytes/reader.go?name=release#94" title="View Source">UnreadRune</a> </h3>
|
||
<pre class="funcdecl">func (r *<a href="#Reader">Reader</a>) UnreadRune() <a href="builtin.htm#error">error</a></pre>
|
||
<h3 id="Reader.Seek">func (*Reader) <a href="https://github.com/golang/go/blob/master/src/bytes/reader.go?name=release#104" title="View Source">Seek</a> </h3>
|
||
<pre class="funcdecl">func (r *<a href="#Reader">Reader</a>) Seek(offset <a href="builtin.htm#int64">int64</a>, whence <a href="builtin.htm#int">int</a>) (<a href="builtin.htm#int64">int64</a>, <a href="builtin.htm#error">error</a>)</pre>
|
||
<p>Seek实现了io.Seeker接口。</p>
|
||
<h3 id="Reader.ReadAt">func (*Reader) <a href="https://github.com/golang/go/blob/master/src/bytes/reader.go?name=release#45" title="View Source">ReadAt</a> </h3>
|
||
<pre class="funcdecl">func (r *<a href="#Reader">Reader</a>) ReadAt(b []<a href="builtin.htm#byte">byte</a>, off <a href="builtin.htm#int64">int64</a>) (n <a href="builtin.htm#int">int</a>, err <a href="builtin.htm#error">error</a>)</pre>
|
||
<h3 id="Reader.WriteTo">func (*Reader) <a href="https://github.com/golang/go/blob/master/src/bytes/reader.go?name=release#125" title="View Source">WriteTo</a> </h3>
|
||
<pre class="funcdecl">func (r *<a href="#Reader">Reader</a>) WriteTo(w <a href="io.htm">io</a>.<a href="io.htm#Writer">Writer</a>) (n <a href="builtin.htm#int64">int64</a>, err <a href="builtin.htm#error">error</a>)</pre>
|
||
<p>WriteTo实现了io.WriterTo接口。</p>
|
||
<h2 id="Buffer">type <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#17" title="View Source">Buffer</a> </h2>
|
||
<pre>type Buffer struct {
|
||
<span class="com">// 内含隐藏或非导出字段</span>
|
||
}</pre>
|
||
<p>Buffer是一个实现了读写方法的可变大小的字节缓冲。本类型的零值是一个空的可用于读写的缓冲。</p>
|
||
<div class="panel-group">
|
||
<div class="panel panel-default" id="example-Buffer">
|
||
<div class="panel-heading" onclick="document.getElementById('ex-Buffer').style.display = document.getElementById('ex-Buffer').style.display=='none'?'block':'none';">Example</div>
|
||
<div class="panel-collapse collapse" id="ex-Buffer">
|
||
<div class="panel-body">
|
||
<pre>var b bytes.Buffer <span class="com">// A Buffer needs no initialization.</span>
|
||
b.Write([]byte("Hello "))
|
||
fmt.Fprintf(&b, "world!")
|
||
b.WriteTo(os.Stdout)</pre>
|
||
<p>Output:
|
||
</p><pre>Hello world!
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="panel panel-default" id="example-Buffer--Reader">
|
||
<div class="panel-heading" onclick="document.getElementById('ex-Buffer--Reader').style.display = document.getElementById('ex-Buffer--Reader').style.display=='none'?'block':'none';">Example (Reader)</div>
|
||
<div class="panel-collapse collapse" id="ex-Buffer--Reader">
|
||
<div class="panel-body">
|
||
<pre><span class="com">// A Buffer can turn a string or a []byte into an io.Reader.</span>
|
||
buf := bytes.NewBufferString("R29waGVycyBydWxlIQ==")
|
||
dec := base64.NewDecoder(base64.StdEncoding, buf)
|
||
io.Copy(os.Stdout, dec)</pre>
|
||
<p>Output:
|
||
</p><pre>Gophers rule!
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<h3 id="NewBuffer">func <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#402" title="View Source">NewBuffer</a> </h3>
|
||
<pre class="funcdecl">func NewBuffer(buf []<a href="builtin.htm#byte">byte</a>) *<a href="#Buffer">Buffer</a></pre>
|
||
<p>NewBuffer使用buf作为初始内容创建并初始化一个Buffer。本函数用于创建一个用于读取已存在数据的buffer;也用于指定用于写入的内部缓冲的大小,此时,buf应为一个具有指定容量但长度为0的切片。buf会被作为返回值的底层缓冲切片。</p>
|
||
<p>大多数情况下,new(Buffer)(或只是声明一个Buffer类型变量)就足以初始化一个Buffer了。</p>
|
||
<h3 id="NewBufferString">func <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#410" title="View Source">NewBufferString</a> </h3>
|
||
<pre class="funcdecl">func NewBufferString(s <a href="builtin.htm#string">string</a>) *<a href="#Buffer">Buffer</a></pre>
|
||
<p>NewBuffer使用s作为初始内容创建并初始化一个Buffer。本函数用于创建一个用于读取已存在数据的buffer。</p>
|
||
<p>大多数情况下,new(Buffer)(或只是声明一个Buffer类型变量)就足以初始化一个Buffer了。</p>
|
||
<h3 id="Buffer.Reset">func (*Buffer) <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#75" title="View Source">Reset</a> </h3>
|
||
<pre class="funcdecl">func (b *<a href="#Buffer">Buffer</a>) Reset()</pre>
|
||
<p>Reset重设缓冲,因此会丢弃全部内容,等价于b.Truncate(0)。</p>
|
||
<h3 id="Buffer.Len">func (*Buffer) <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#57" title="View Source">Len</a> </h3>
|
||
<pre class="funcdecl">func (b *<a href="#Buffer">Buffer</a>) Len() <a href="builtin.htm#int">int</a></pre>
|
||
<p>返回缓冲中未读取部分的字节长度;b.Len() == len(b.Bytes())。</p>
|
||
<h3 id="Buffer.Bytes">func (*Buffer) <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#43" title="View Source">Bytes</a> </h3>
|
||
<pre class="funcdecl">func (b *<a href="#Buffer">Buffer</a>) Bytes() []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>返回未读取部分字节数据的切片,len(b.Bytes()) == b.Len()。如果中间没有调用其他方法,修改返回的切片的内容会直接改变Buffer的内容。</p>
|
||
<h3 id="Buffer.String">func (*Buffer) <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#47" title="View Source">String</a> </h3>
|
||
<pre class="funcdecl">func (b *<a href="#Buffer">Buffer</a>) String() <a href="builtin.htm#string">string</a></pre>
|
||
<p>将未读取部分的字节数据作为字符串返回,如果b是nil指针,会返回"<nil>"。</p>
|
||
<h3 id="Buffer.Truncate">func (*Buffer) <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#61" title="View Source">Truncate</a> </h3>
|
||
<pre class="funcdecl">func (b *<a href="#Buffer">Buffer</a>) Truncate(n <a href="builtin.htm#int">int</a>)</pre>
|
||
<p>丢弃缓冲中除前n字节数据外的其它数据,如果n小于零或者大于缓冲容量将panic。</p>
|
||
<h3 id="Buffer.Grow">func (*Buffer) <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#114" title="View Source">Grow</a> </h3>
|
||
<pre class="funcdecl">func (b *<a href="#Buffer">Buffer</a>) Grow(n <a href="builtin.htm#int">int</a>)</pre>
|
||
<p>必要时会增加缓冲的容量,以保证n字节的剩余空间。调用Grow(n)后至少可以向缓冲中写入n字节数据而无需申请内存。如果n小于零或者不能增加容量都会panic。</p>
|
||
<h3 id="Buffer.Read">func (*Buffer) <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#251" title="View Source">Read</a> </h3>
|
||
<pre class="funcdecl">func (b *<a href="#Buffer">Buffer</a>) Read(p []<a href="builtin.htm#byte">byte</a>) (n <a href="builtin.htm#int">int</a>, err <a href="builtin.htm#error">error</a>)</pre>
|
||
<p>Read方法从缓冲中读取数据直到缓冲中没有数据或者读取了len(p)字节数据,将读取的数据写入p。返回值n是读取的字节数,除非缓冲中完全没有数据可以读取并写入p,此时返回值err为io.EOF;否则err总是nil。</p>
|
||
<h3 id="Buffer.Next">func (*Buffer) <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#273" title="View Source">Next</a> </h3>
|
||
<pre class="funcdecl">func (b *<a href="#Buffer">Buffer</a>) Next(n <a href="builtin.htm#int">int</a>) []<a href="builtin.htm#byte">byte</a></pre>
|
||
<p>返回未读取部分前n字节数据的切片,并且移动读取位置,就像调用了Read方法一样。如果缓冲内数据不足,会返回整个数据的切片。切片只在下一次调用b的读/写方法前才合法。</p>
|
||
<h3 id="Buffer.ReadByte">func (*Buffer) <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#289" title="View Source">ReadByte</a> </h3>
|
||
<pre class="funcdecl">func (b *<a href="#Buffer">Buffer</a>) ReadByte() (c <a href="builtin.htm#byte">byte</a>, err <a href="builtin.htm#error">error</a>)</pre>
|
||
<p>ReadByte读取并返回缓冲中的下一个字节。如果没有数据可用,返回值err为io.EOF。</p>
|
||
<h3 id="Buffer.UnreadByte">func (*Buffer) <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#345" title="View Source">UnreadByte</a> </h3>
|
||
<pre class="funcdecl">func (b *<a href="#Buffer">Buffer</a>) UnreadByte() <a href="builtin.htm#error">error</a></pre>
|
||
<p>UnreadByte吐出最近一次读取操作读取的最后一个字节。如果最后一次读取操作之后进行了写入,本方法会返回错误。</p>
|
||
<h3 id="Buffer.ReadRune">func (*Buffer) <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#307" title="View Source">ReadRune</a> </h3>
|
||
<pre class="funcdecl">func (b *<a href="#Buffer">Buffer</a>) ReadRune() (r <a href="builtin.htm#rune">rune</a>, size <a href="builtin.htm#int">int</a>, err <a href="builtin.htm#error">error</a>)</pre>
|
||
<p>ReadRune读取并返回缓冲中的下一个utf-8码值。如果没有数据可用,返回值err为io.EOF。如果缓冲中的数据是错误的utf-8编码,本方法会吃掉一字节并返回(U+FFFD, 1, nil)。</p>
|
||
<h3 id="Buffer.UnreadRune">func (*Buffer) <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#330" title="View Source">UnreadRune</a> </h3>
|
||
<pre class="funcdecl">func (b *<a href="#Buffer">Buffer</a>) UnreadRune() <a href="builtin.htm#error">error</a></pre>
|
||
<p>UnreadRune吐出最近一次调用ReadRune方法读取的unicode码值。如果最近一次读写操作不是ReadRune,本方法会返回错误。(这里就能看出来UnreadRune比UnreadByte严格多了)</p>
|
||
<h3 id="Buffer.ReadBytes">func (*Buffer) <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#362" title="View Source">ReadBytes</a> </h3>
|
||
<pre class="funcdecl">func (b *<a href="#Buffer">Buffer</a>) ReadBytes(delim <a href="builtin.htm#byte">byte</a>) (line []<a href="builtin.htm#byte">byte</a>, err <a href="builtin.htm#error">error</a>)</pre>
|
||
<p>ReadBytes读取直到第一次遇到delim字节,返回一个包含已读取的数据和delim字节的切片。如果ReadBytes方法在读取到delim之前遇到了错误,它会返回在错误之前读取的数据以及该错误(一般是io.EOF)。当且仅当ReadBytes方法返回的切片不以delim结尾时,会返回一个非nil的错误。</p>
|
||
<h3 id="Buffer.ReadString">func (*Buffer) <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#390" title="View Source">ReadString</a> </h3>
|
||
<pre class="funcdecl">func (b *<a href="#Buffer">Buffer</a>) ReadString(delim <a href="builtin.htm#byte">byte</a>) (line <a href="builtin.htm#string">string</a>, err <a href="builtin.htm#error">error</a>)</pre>
|
||
<p>ReadString读取直到第一次遇到delim字节,返回一个包含已读取的数据和delim字节的字符串。如果ReadString方法在读取到delim之前遇到了错误,它会返回在错误之前读取的数据以及该错误(一般是io.EOF)。当且仅当ReadString方法返回的切片不以delim结尾时,会返回一个非nil的错误。</p>
|
||
<h3 id="Buffer.Write">func (*Buffer) <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#125" title="View Source">Write</a> </h3>
|
||
<pre class="funcdecl">func (b *<a href="#Buffer">Buffer</a>) Write(p []<a href="builtin.htm#byte">byte</a>) (n <a href="builtin.htm#int">int</a>, err <a href="builtin.htm#error">error</a>)</pre>
|
||
<p>Write将p的内容写入缓冲中,如必要会增加缓冲容量。返回值n为len(p),err总是nil。如果缓冲变得太大,Write会采用错误值ErrTooLarge引发panic。</p>
|
||
<h3 id="Buffer.WriteString">func (*Buffer) <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#134" title="View Source">WriteString</a> </h3>
|
||
<pre class="funcdecl">func (b *<a href="#Buffer">Buffer</a>) WriteString(s <a href="builtin.htm#string">string</a>) (n <a href="builtin.htm#int">int</a>, err <a href="builtin.htm#error">error</a>)</pre>
|
||
<p>Write将s的内容写入缓冲中,如必要会增加缓冲容量。返回值n为len(p),err总是nil。如果缓冲变得太大,Write会采用错误值ErrTooLarge引发panic。</p>
|
||
<h3 id="Buffer.WriteByte">func (*Buffer) <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#226" title="View Source">WriteByte</a> </h3>
|
||
<pre class="funcdecl">func (b *<a href="#Buffer">Buffer</a>) WriteByte(c <a href="builtin.htm#byte">byte</a>) <a href="builtin.htm#error">error</a></pre>
|
||
<p>WriteByte将字节c写入缓冲中,如必要会增加缓冲容量。返回值总是nil,但仍保留以匹配bufio.Writer的WriteByte方法。如果缓冲太大,WriteByte会采用错误值ErrTooLarge引发panic。</p>
|
||
<h3 id="Buffer.WriteRune">func (*Buffer) <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#237" title="View Source">WriteRune</a> </h3>
|
||
<pre class="funcdecl">func (b *<a href="#Buffer">Buffer</a>) WriteRune(r <a href="builtin.htm#rune">rune</a>) (n <a href="builtin.htm#int">int</a>, err <a href="builtin.htm#error">error</a>)</pre>
|
||
<p>WriteByte将unicode码值r的utf-8编码写入缓冲中,如必要会增加缓冲容量。返回值总是nil,但仍保留以匹配bufio.Writer的WriteRune方法。如果缓冲太大,WriteRune会采用错误值ErrTooLarge引发panic。</p>
|
||
<h3 id="Buffer.ReadFrom">func (*Buffer) <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#150" title="View Source">ReadFrom</a> </h3>
|
||
<pre class="funcdecl">func (b *<a href="#Buffer">Buffer</a>) ReadFrom(r <a href="io.htm">io</a>.<a href="io.htm#Reader">Reader</a>) (n <a href="builtin.htm#int64">int64</a>, err <a href="builtin.htm#error">error</a>)</pre>
|
||
<p>ReadFrom从r中读取数据直到结束并将读取的数据写入缓冲中,如必要会增加缓冲容量。返回值n为从r读取并写入b的字节数;会返回读取时遇到的除了io.EOF之外的错误。如果缓冲太大,ReadFrom会采用错误值ErrTooLarge引发panic。</p>
|
||
<h3 id="Buffer.WriteTo">func (*Buffer) <a href="https://github.com/golang/go/blob/master/src/bytes/buffer.go?name=release#198" title="View Source">WriteTo</a> </h3>
|
||
<pre class="funcdecl">func (b *<a href="#Buffer">Buffer</a>) WriteTo(w <a href="io.htm">io</a>.<a href="io.htm#Writer">Writer</a>) (n <a href="builtin.htm#int64">int64</a>, err <a href="builtin.htm#error">error</a>)</pre>
|
||
<p>WriteTo从缓冲中读取数据直到缓冲内没有数据或遇到错误,并将这些数据写入w。返回值n为从b读取并写入w的字节数;返回值总是可以无溢出的写入int类型,但为了匹配io.WriterTo接口设为int64类型。从b读取是遇到的非io.EOF错误及写入w时遇到的错误都会终止本方法并返回该错误。</p>
|
||
</div> |