io流

先大概瞭解如下,最後有總結java

  1. Java中的輸入輸出都是以流的形式(文件讀寫,網絡傳遞)。
  2. 編碼問題
  3. File類
  4. RandomAccessFile
  5. 按照數據流的不一樣分爲·:輸入流和輸出流
  6. 按照處理數據單位不一樣能夠分爲:字節流和字符流

1.Java中的輸入輸出都是以流的形式(文件讀寫,網絡傳遞)。
在程序須要讀取數據時會開啓一個通向數據源的數據流,這個數據源能夠是文件,內存或者是網絡鏈接。相似的,當程序須要寫入文件時,就會開啓一個通向目的地的流。這裏的數據源和目的地均可以經過File類中構造函數的參數進行賦值。(如:複製一段文字或者圖片)web

2.編碼問題
介紹三種
gbk編碼:中文2個字節,英文1個字節
utf-8:中文3個字節 英文1個字節
utf-16be:中文2個字節 英文2個字節
當你的字節序列是某種編碼時,若是這時候想把字節序列變成字符串,也須要用這種編碼方式,不然會出現亂碼。
Java是雙字節編碼utf-16be數組

3.File類
java.io.File類用於表示文件(目錄),
File類只用於表示文件的信息(名稱,大小等)不能用於文件內容的訪問在這裏插入圖片描述
第一個標識中須要介紹\符號
File file=new FIle(「F:\demo」);記得是雙斜槓\或者/ 還能夠是File.separator,File.separator表示通用分隔符。三者功能相同
主要方法
exists();判斷文件/文件夾是否存在
mkdir();建立文件夾 若是是多級目錄用mkdirs();
delete();刪除文件夾
判斷是不是一個目錄file.isDirectpry(); 是不是一個文件 file.isFile();
建立一個文件 createNewFile(); 是文件!!!不是文件夾,file對象中要有文件後綴。
網絡

4.RandomAccessFile
Java提供的對文件內容的訪問,既能夠讀文件,也能夠寫文件。
(1).java文件模式
在磁盤中的文件是byte存儲的,是數據的集合
(2).打開文件
有兩種模式 rw(讀寫)和r(讀);
RandomAccessFile raf=new RandomAccessFile(file,「rw」)
!文件指針,打開文件時指針在開頭pointer=0;
(3).寫方法
raf.write(int) 只寫一個字節
(4)讀方法
raf.read() 只讀一個字節
(5)文件讀寫完後必定要關閉
raf.close();
在這裏插入圖片描述
5.按照數據流的不一樣分爲·:輸入流和輸出流
以程序爲對象
程序-------->文件 輸出流
文件-------->程序 輸入流
如下是一個輸入流的Demo在這裏插入圖片描述
輸出流介紹一個複製的Demo
在這裏插入圖片描述
能夠定義一個byte數組讀取,讀取效率快不少!!!!dom

6.按照處理數據單位不一樣能夠分爲:字節流和字符流
字節流和字符流的原理是相同的,只是處理的單位不一樣
第五點中爲字節流,(處理圖片是最好用字節流,防止漏讀);
小技巧:後綴爲Stream是字節·流,然後綴爲Reader,Writer是字符流
下面是一個字符流中讀的Demo(記得要關掉流)《輸入流》
在這裏插入圖片描述
下面是一個字符流中寫的Demo(記得要關掉流)《輸出流》
在這裏插入圖片描述
這裏記得要刷新流flush();!!!svg

總結:
(一)Java中,設計了四個抽象類來表示流:
1.InputStream :字節流 讀取數據
2.OutputStream:字節流 寫入數據
3.Reader:字符流 讀取數據
4.Writer :字符流 寫入數據
其餘多種多樣的流都是繼承了它們,並進行了裝飾而派生出來的增強版
函數

(二)使用步驟:
1.建立File對象
2.建立流對象
3.操做 讀 ,寫
4關閉流
編碼

本文同步分享在 博客「計蒙不吃魚」(CSDN)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。.net

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息