1515public static < S extends Readable & Closeable ,T extends Appendable & Closeable > void copy(S src, T trg, int size) throws IOException {
1616 try {
1717 CharBuffer buf = CharBuffer . allocate(size);
18- int i = src. read(buf);
19- while (i >= 0 ) {
20- buf. flip(); // prepare buffer for writing
21- trg. append(buf);
22- buf. clear(); // prepare buffer for reading
23- i = src. read(buf);
18+ int i = src. read(buf);
19+ while (i >= 0 ) {
20+ buf. flip(); // prepare buffer for writing
21+ trg. append(buf);
22+ buf. clear(); // prepare buffer for reading
23+ i = src. read(buf);
2424 }
2525 } finally {
2626 src. close();
@@ -36,13 +36,13 @@ public static <S extends Readable & Closeable,T extends Appendable & Closeable>
3636例如,可以使用两个文件作为源和目标或使用包含在缓冲区中的相同两个文件作为源和目标来调用此方法:
3737
3838``` java
39- int size = 32 ;
40- FileReader r = new FileReader (" file.in" );
41- FileWriter w = new FileWriter (" file.out" );
42- copy(r,w,size);
43- BufferedReader br = new BufferedReader (new FileReader (" file.in" ));
44- BufferedWriter bw = new BufferedWriter (new FileWriter (" file.out" ));
45- copy(br,bw,size);
39+ int size = 32 ;
40+ FileReader r = new FileReader (" file.in" );
41+ FileWriter w = new FileWriter (" file.out" );
42+ copy(r,w,size);
43+ BufferedReader br = new BufferedReader (new FileReader (" file.in" ));
44+ BufferedWriter bw = new BufferedWriter (new FileWriter (" file.out" ));
45+ copy(br,bw,size);
4646```
4747
4848其他可能的来源包括 ` FilterReader ` ,` PipedReader ` 和 ` StringReader ` ,其他可能的目标包括 ` FilterWriter ` ,` PipedWriter ` 和 ` PrintStream ` 。但是你
@@ -56,7 +56,7 @@ public static void copy(Reader src, Writer trg, int size)
5656```
5757
5858这将确实承认大部分相同的课程,但不是全部。 例如,` PrintStream ` 实现了 ` Appendable ` 和 ` Closeable ` ,但不是 ` Writer ` 的子类。 此外,你不能排除一些
59- 使用你的代码的程序员可能有他或她自己的自定义类,比如实现 ` Readable ` 和 ` Closeable ` ,但不是 ` Reader ` 的子类。
59+ 使用你的代码的程序员可能有他或她自己的自定义类,比如实现 ` Readable ` 和 ` Closeable ` ,但不是 ` Reader ` 的子类。
6060
6161当出现多个界限时,第一个界限用于擦除。我们在第3.2节中提到了这一点:
6262
0 commit comments