java基础知识回顾之javaIO类总结
?
java IO體系圖
?
?
IO流的操作規(guī)律總結(jié):
1,明確體系:
數(shù)據(jù)源:InputStream ,Reader
數(shù)據(jù)匯:OutputStream,Writer
2,明確數(shù)據(jù):因?yàn)閿?shù)據(jù)分兩種:字節(jié),字符。
數(shù)據(jù)源:是否是純文本數(shù)據(jù)呢?
是:Reader 字符輸入流
否:InputStream ?字節(jié)輸入流
數(shù)據(jù)匯:是否是純文本數(shù)據(jù)呢?
是:Writer ?字符輸出流
否:OutputStream ?字節(jié)輸出流、
到這里就可以明確具體要使用哪一個(gè)體系了,剩下的就是要明確使用這個(gè)體系中的哪個(gè)對象。
3.明確設(shè)備:
數(shù)據(jù)源:
鍵盤:System.in ?鍵盤輸入
硬盤:FileXXX ? ? 硬盤上面
內(nèi)存:數(shù)組。 ?
網(wǎng)絡(luò):socket socket.getInputStream();
數(shù)據(jù)匯:
控制臺:System.out
硬盤:FileXXX
內(nèi)存:數(shù)組
網(wǎng)絡(luò):socket socket.getOutputStream();
4,明確額外功能:
1,需要轉(zhuǎn)換?是,使用轉(zhuǎn)換流。InputStreamReader OutputStreamWriter
2,需要高效?是,使用緩沖區(qū)。Buffered
3,需要其他?
-------------------------------------------------------------------------------------------------------------------------------------
1,復(fù)制一個(gè)文本文件。
1,明確體系:
源:InputStream ,Reader
目的:OutputStream ,Writer
2,明確數(shù)據(jù):
源:是純文本嗎?是 Reader
目的;是純文本嗎?是 Writer
3,明確設(shè)備:
源:硬盤上的一個(gè)文件。 FileReader
目的:硬盤上的一個(gè)文件。FileWriter
FileReader fr = new FileReader("a.txt");
FileWriter fw = new FileWriter("b.txt");
4,需要額外功能嗎?
需要,高效,使用buffer
BufferedReader bufr = new BufferedReader(new FileReader("a.txt"));
BufferedWriter bufw = new BufferedWriter(new FileWriter("b.txt"));
?
2,讀取鍵盤錄入,將數(shù)據(jù)存儲到一個(gè)文件中。
1,明確體系:
源:InputStream ,Reader
目的:OutputStream ,Writer
2,明確數(shù)據(jù):
源:是純文本嗎?是 Reader
目的;是純文本嗎?是 Writer
3,明確設(shè)備:
源:鍵盤,System.in
目的:硬盤,FileWriter
InputStream in = System.in;
FileWriter fw = new FileWriter("a.txt");
? ? ? 4,需要額外功能嗎?
需要,因?yàn)樵疵鞔_的體系時(shí)Reader。可是源的設(shè)備是System.in。
所以為了方便于操作文本數(shù)據(jù),將源轉(zhuǎn)成字符流。需要轉(zhuǎn)換流。InputStreamReader
InputStreamReader isr = new InputStreamReader(System.in);
FileWriter fw = new FileWriter("a.txt");
需要高效不?需要。Buffer
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufw = new BufferedWriter(new FileWriter("a.txt"));
3,讀取一個(gè)文本文件,將數(shù)據(jù)展現(xiàn)在控制臺上。
1,明確體系:
源:InputStream ,Reader
目的:OutputStream ,Writer
2,明確數(shù)據(jù):
源:是純文本嗎?是 Reader
目的;是純文本嗎?是 Writer
3,明確設(shè)備:
源:硬盤文件,FileReader。
目的:控制臺:System.out。
FileReader fr = new FileReader("a.txt");
OutputStream out = System.out;
4,需要額外功能?
因?yàn)樵词俏谋緮?shù)據(jù),確定是Writer體系。所以為了方便操作字符數(shù)據(jù),
需要使用字符流,但是目的又是一個(gè)字節(jié)輸出流。
需要一個(gè)轉(zhuǎn)換流,OutputStreamWriter:字符向字節(jié)轉(zhuǎn)化
FileReader fr = new FileReader("a.txt");
OutputStreamWriter osw = new OutputStreamWriter(System.out);
需要高效嗎?需要。
BufferedReader bufr = new BufferedReader(new FileReader("a.txt"));
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));
?
4,讀取鍵盤錄入,將數(shù)據(jù)展現(xiàn)在控制臺上。
1,明確體系:
源:InputStream ,Reader
目的:OutputStream ,Writer
2,明確數(shù)據(jù):
源:是純文本嗎?是 Reader
目的;是純文本嗎?是 Writer
3,明確設(shè)備:
源:鍵盤:System.in
目的:控制臺:System.out
InputStream in = System.in;
OutputStream out = System.out;
4,需要額外功能嗎?
因?yàn)樘幚淼臄?shù)據(jù)是文本數(shù)據(jù),同時(shí)確定是字符流體系。
為方便操作字符數(shù)據(jù)的可以將源和目的都轉(zhuǎn)成字符流。使用轉(zhuǎn)換流。
為了提高效率,使用Buffer
BufferedReader bufr =new BufferedReader(new InputStreamReader(Systme.in));
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));
5,讀取一個(gè)文本文件,將文件按照指定的編碼表UTF-8進(jìn)行存儲,保存到另一個(gè)文件中。
1,明確體系:
源:InputStream ,Reader
目的:OutputStream ,Writer
2,明確數(shù)據(jù):
源:是純文本嗎?是 Reader
目的;是純文本嗎?是 Writer
3,明確設(shè)備:
源:硬盤:FileReader.
目的:硬盤:FileWriter
FileReader fr = new FileReader("a.txt");
FileWriter fw = new FileWriter("b.txt");
4,額外功能:
注意:目的中雖然是一個(gè)文件,但是需要指定編碼表。
而直接操作文本文件的FileWriter本身內(nèi)置的是本地默認(rèn)碼表。無法明確具體指定碼表。
這時(shí)就需要轉(zhuǎn)換功能。OutputStreamWriter,而這個(gè)轉(zhuǎn)換流需要接受一個(gè)字節(jié)輸出流,而且
對應(yīng)的目的是一個(gè)文件。這時(shí)就使用字節(jié)輸出流中的操作文件的流對象。FileOutputStream.
FileReader fr = new FileReader("a.txt");
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("b.txt"),"UTF-8");
需要高效嗎?
BufferedReader bufr = new BufferedReader(new FileReader("a.txt"));
BufferedWriter bufw =
new BufferedWriter(new OutputStreamWriter(new FileOutputStream("b.txt"),"UTF-8"));
目前為止,10個(gè)流對象重點(diǎn)掌握。
字符流:
FileReader
FileWriter
BufferedReader
BufferedWriter
InputStreamReader
OutputStreamWrier
字節(jié)流:
FileInputStream
FileOutputStream
BufferedInputStream?
BufferedOutputStream
?
總結(jié)
以上是生活随笔為你收集整理的java基础知识回顾之javaIO类总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.Net TextBox控件只允许
- 下一篇: android获取string.xml的