新手瞭解java IO基礎知識(二)
一、IO概念
- I/O 即輸入Input/ 輸出Output的縮寫,其實就是計算機調度把各個存儲中(包括內存和外部存儲)的數據寫入寫出
- java中用“流(stream)”來抽象表示這麼一個寫入寫出的功能,封裝成一個“類”,都放在java.io這個包裡面。
- java.io包下提供瞭各種“流”類和接口,用以獲取不同種類的數據,並 通過標準的方法輸入或輸出數據
1.什麼是輸入
程序從內存中讀取數據叫輸入Input。
2.什麼輸出(Output)
程序把數據寫入到內存中叫輸出Output。
二、流的分類
- 按操作數據單位不同分為:字節流(8 bit),字符流(16 bit)
- 按數據流的流向不同分為:輸入流,輸出流
- 按流的角色的不同分為:節點流,處理流
IO流體系
1、InputStream(字節流)
示例:
public static void main(String[] args) { iprt(); } public static void ipst(){ InputStream inputStream = null; try { inputStream = new FileInputStream("C:\\1.txt"); int i; while ( (i = inputStream.read()) != -1){ System.out.print((char) i); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (inputStream != null){ inputStream.close(); } } catch (IOException e) { e.printStackTrace(); } } }
說明:使用InputStream向內存中讀如文件數據。
2、OutputStream(字節流)
示例:
public class ImageCopy { public static void main(String[] args) { try( InputStream inputStream = new FileInputStream("D:\\KDA.jpg"); OutputStream outputStream = new FileOutputStream("E:\\aaa\\KDA.jpg") ){ byte[] bytes = new byte[1024]; int i; while ((i = inputStream.read(bytes)) != -1){ outputStream.write(bytes,0,i); } } catch (IOException e) { e.printStackTrace(); } } }
說明:使用輸入流與輸出流結合實現圖片復制的功能。
3、Reader(字符流)
示例:
public static void iprt(){ Reader reader = null; try { reader = new FileReader("C:\\1.txt"); int i ; while ((i = reader.read()) != -1){ System.out.print((char) i); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (reader != null) { reader.close(); } } catch (IOException e) { e.printStackTrace(); } } }
說明:使用Reader(字符流)從文件中讀入數據。
4、Writer(字符流)
public static void iprt(){ Reader reader = null; Writer writer = null; try { reader = new FileReader("C:\\Users\\52425\\Desktop\\1.txt"); writer = new FileWriter("C:\\2.txt"); int i ; while ((i = reader.read()) != -1){ writer.write(i); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { writer.close(); reader.close(); } catch (IOException e) { e.printStackTrace(); } } }
說明:使用字符流實現文件復制功能。
三、總結(1+2)
1. File類及方法的使用
File是操作文件/目錄的類,可以對文件/目錄進行創建,重命名, 刪除等操作。
2.IO流的分類
- 根據數據大小可分為:字節流和字符流
- 根據流向可分為:輸入流和輸出流
- 根據功能可分為:節點流和處理流
3.IO流的四個基本類
- 字節輸入流:InputStream,它的常用子類是FileInputStream
- 字節輸出流:OutputStream,它的常用子類是OutputStream
- 字符輸入流:Reader,它的常用子類是FileReader
- 字符輸出流:Writer,它的常用子類是FileWriter
總結
本篇關於java IO的文章就到這裡瞭,希望能幫到你,也希望你能夠多多關註WalkonNet的更多內容!
推薦閱讀:
- Java中IO流解析及代碼實例
- Java中IO流解析及代碼實例詳解
- Java inputstream和outputstream使用詳解
- Java的File類和IO流其實真的不難
- 圖文詳解Java中的字節輸入與輸出流