IO放射讀寫

這裏寫圖片描述
IO流:
根據流的方向 :
輸入流,輸出流
根據流操作的數據類型 :
字節流,字符流

字符流 : 字節流 + 編碼表
IO流 –>Input(輸入) Output(輸出)流
設備間數據的傳輸都是通過IO流來實現的
IO流所設計到的流對象都是封裝在IO包中

存儲數據的設備 :
內存
文件
數據庫
網絡(雲)

所有操作字節流的頂層
InputStream(輸入流) OutputStream(輸出流)

所有操作字符流的頂層
Reader(輸入流) Writer(輸出流)

字節流 : 操作所有文件(音視頻,各種安裝軟件,遊戲…)
字符流 : 操作純文本類 型數據比字節流方便.

//重要快捷鍵: 整體抓異常 選中要抓的整體異常 ALT + Shift + z

//輸出流 (寫)

demo01 
String count = "我愛你";  
//FileWriter
//用來寫入字符文件的便捷類。
FileWriter fw = new FileWriter("Demo1.txt");
//3.調用字符流的write方法將內容寫出去
fw.write(count);
//將內容保存
fw.flush();
//關閉流
fw.close(); 

//輸入流 (讀)

demo02 
FileReader fr = new FileReader("Demo.txt") 
int len = 0;
//流緩衝區讀取效率更
char[] arr = new char[1024];  
//當整體字符全部讀取完畢之後會返回一個-1所以可以當作循環停止的條件
while ((len = fr.read(arr))!=-1) {
    System.out.println(new String(arr,0,len));
} 
fr.close();   

//將一個絕對路徑裏面的文件複製到別的位置

FileReader fr = new FileReader("D://asd//sign.txt"); 
FileWriter fw = new FileWriter("D://asd//sign2.txt"); 
    // 創建一個字符串緩存區 來高效讀取邊讀邊寫
    char[] arr = new char[1024]; 
    int len = 0; 初始化數據 
    /**
    *循環讀取當返回-1則表示沒有數據了
    *然後就是循環讀取之後的寫 fw.write()
    */
    while ((len = fr.read(arr)) != -1) {
        fw.write(arr, 0, len);
    }
    //應該先關閉(輸出流)保證數據的完整  然後再關閉(輸入流)
    fw.close();
    fr.close();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章