日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

?

java IO體系圖

?

?

IO流的操作規(guī)律總結(jié):

1,明確體系:
數(shù)據(jù)源:InputStream ,Reader
數(shù)據(jù)匯:OutputStream,Writer

2,明確數(shù)據(jù):因為數(shù)據(jù)分兩種:字節(jié),字符。
數(shù)據(jù)源:是否是純文本數(shù)據(jù)呢?
是:Reader 字符輸入流
否:InputStream ?字節(jié)輸入流

數(shù)據(jù)匯:是否是純文本數(shù)據(jù)呢?
是:Writer ?字符輸出流
否:OutputStream ?字節(jié)輸出流、

到這里就可以明確具體要使用哪一個體系了,剩下的就是要明確使用這個體系中的哪個對象。

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ù)制一個文本文件。

  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,需要額外功能嗎?
    需要,高效,使用buffer
    BufferedReader bufr = new BufferedReader(new FileReader("a.txt"));
    BufferedWriter bufw = new BufferedWriter(new FileWriter("b.txt"));

?

2,讀取鍵盤錄入,將數(shù)據(jù)存儲到一個文件中。
  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,需要額外功能嗎?
  需要,因為源明確的體系時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,讀取一個文本文件,將數(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,需要額外功能?
  因為源是文本數(shù)據(jù),確定是Writer體系。所以為了方便操作字符數(shù)據(jù),
  需要使用字符流,但是目的又是一個字節(jié)輸出流。
  需要一個轉(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,需要額外功能嗎?
  因為處理的數(shù)據(jù)是文本數(shù)據(jù),同時確定是字符流體系。
  為方便操作字符數(shù)據(jù)的可以將源和目的都轉(zhuǎn)成字符流。使用轉(zhuǎn)換流。
  為了提高效率,使用Buffer
  BufferedReader bufr =new BufferedReader(new InputStreamReader(Systme.in));
  BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));

5,讀取一個文本文件,將文件按照指定的編碼表UTF-8進行存儲,保存到另一個文件中。
  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,額外功能:
  注意:目的中雖然是一個文件,但是需要指定編碼表。
  而直接操作文本文件的FileWriter本身內(nèi)置的是本地默認碼表。無法明確具體指定碼表。
  這時就需要轉(zhuǎn)換功能。OutputStreamWriter,而這個轉(zhuǎn)換流需要接受一個字節(jié)輸出流,而且
  對應(yīng)的目的是一個文件。這時就使用字節(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個流對象重點掌握。
  字符流:
  FileReader
  FileWriter

  BufferedReader
  BufferedWriter

  InputStreamReader
  OutputStreamWrier
  字節(jié)流:

  FileInputStream
  FileOutputStream

  BufferedInputStream?
  BufferedOutputStream

?

總結(jié)

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

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