實例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
import java.io.*; public class TransStreamDemo2 { /** * 流操作的基本規律 * 1、 * 源,鍵盤錄入 * 目的。控制臺 * 2、 * 需求:想把鍵盤錄入的數據存儲到一個文件中。 * 源:鍵盤 * 目的:文件(FileoutputStream可以操作文件) * 3、 * 需求:想把一個文件的數據打印到控制臺上 * 源:某個文件 * 目的:控制臺 * * * 流操作的基本規律 * 最痛苦的是流對象很多不知道用哪個 * * 通過兩個明確來完成 * 1、源和目的。 * 源:輸入流,InputStream Reader * 目的:輸出流 OutputStream Writer * 2、操作的數據是否純文本 * 是:字符流 Reader Writer * 否:字節流 InputStreamReader OutputStreamWriter * 3、當體系明確后再明確要使用那個具體的對象 * 通過設備來具體區分 * 源設備:硬盤 內存 鍵盤 * 目的設備:硬盤 內存 控制臺 * * * 1、將一個文件中的數據存到另一個文件中。即復制文件 * 源:因為是源所以使用讀取流。InputStream Reader * 是不是操作文本文件:是 選擇 Reader * 這樣體系就明確了 * 接下來明確該體系要使用哪個對象 * 明確設備:硬盤 上的一個文件 * Reader體系中可以操作文件的對象是 FileReader * * * 目的:OutputStreamWriter 是否純文本 * 是:Writer * 設備:硬盤一個文件 * Writer體系中可以操作文件的對象是FileReader * * FileReader fr=new FileReader("a.txt"); * 如果提高效率:BufferedReader bufr=new BufferedReader(fr); * * FilrWriter fw=new FileWriter("b.txt"); * 是否提高效率:BufferedWriter fw=new BufferedWriter(fw); * * */ public static void main(String[] args) throws IOException{ // TODO Auto-generated method stub BufferedReader bufr= new BufferedReader( new InputStreamReader( new FileInputStream( "d://wdl.txt" ))); // BufferedWriter bufw= new BufferedWriter( new OutputStreamWriter( new FileOutputStream( "d://wdl.txt" ))); BufferedWriter bufw= new BufferedWriter( new OutputStreamWriter(System.out)); String line= null ; while ((line=bufr.readLine())!= null ){ if ( "over" .equals(line)) break ; bufw.write(line.toUpperCase()); bufw.newLine(); // System.out.println(line.toUpperCase()); bufw.flush(); } bufr.close(); bufw.close(); } } |
以上就是小編為大家帶來的java編程 中流對象選取規律詳解全部內容了,希望大家多多支持服務器之家~