日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

java基础知识回顾之javaIO类总结

發(fā)布時(shí)間:2025/7/14 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java基础知识回顾之javaIO类总结 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

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è)對(duì)象。

3.明確設(shè)備:

數(shù)據(jù)源:
鍵盤:System.in ?鍵盤輸入
硬盤:FileXXX ? ? 硬盤上面
內(nèi)存:數(shù)組。 ?
網(wǎng)絡(luò):socket socket.getInputStream();

數(shù)據(jù)匯:
控制臺(tái):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ù)存儲(chǔ)到一個(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)在控制臺(tái)上。
  1,明確體系:
  源:InputStream ,Reader
  目的:OutputStream ,Writer
  2,明確數(shù)據(jù):
  源:是純文本嗎?是 Reader
  目的;是純文本嗎?是 Writer
  3,明確設(shè)備:
  源:硬盤文件,FileReader。
  目的:控制臺(tái):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)在控制臺(tái)上。
  1,明確體系:
  源:InputStream ,Reader
  目的:OutputStream ,Writer
  2,明確數(shù)據(jù):
  源:是純文本嗎?是 Reader
  目的;是純文本嗎?是 Writer
  3,明確設(shè)備:
  源:鍵盤:System.in
  目的:控制臺(tái):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)行存儲(chǔ),保存到另一個(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é)輸出流,而且
  對(duì)應(yīng)的目的是一個(gè)文件。這時(shí)就使用字節(jié)輸出流中的操作文件的流對(duì)象。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è)流對(duì)象重點(diǎn)掌握。
  字符流:
  FileReader
  FileWriter

  BufferedReader
  BufferedWriter

  InputStreamReader
  OutputStreamWrier
  字節(jié)流:

  FileInputStream
  FileOutputStream

  BufferedInputStream?
  BufferedOutputStream

?

總結(jié)

以上是生活随笔為你收集整理的java基础知识回顾之javaIO类总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。