File類
file類能新建、刪除、重命名文件和目錄,如果要訪問文件內容本身,則需要使用輸入輸入流。
輸入輸出流
Java的輸入流主要由InputStream和Reader作為基類,而輸出流主要由OutputStream和Writer作為基類,他們都是一些抽象基類無法直接創建實例。JavaIO的40多個類都是由以上四個基類派生出來的。
InputStream和Reader分別有一個用于讀取文件的輸入流:FileInputStream和FileReader
字節流和字符流
,他們都是節點流——會直接和指定文件關聯
字節流主要由InputStream和OutputStream作為基類,字符流主要由Writer和Reader作為基類
File file = new File("demo.dat");
FileInputStream fis
= new FileInputStream(file);//創建一個用于讀取demo.dat文件的輸入流
FileInputStream(String name):
創建用于讀取給定的文件系統中的路徑名name所指定的文件的FIS
例如
FileInputStream fis
//創建一個用于讀取demo.dat文件的輸入流
= new FileInputStream("demo");
1
字節流和字符流都是節點流,他們構造的時候傳入的是一個物理節點(文件名或者文件目錄)。可以使用處理流來包裝節點流,處理流的兩個優點:1.處理流輸入輸出操作簡單,使用處理流效率更高。構造處理流時傳入的是一個節點流。
區別處理流和節點流:只要流的構造器參數不是一個物理節點,而是已經存在的流,那么這種流就是處理流,而所有節點流都是以物理IO節點作為構造器參數的。
2轉換流
用于實現將字節流轉換成字符流:InputStreamReader和OutputStreamWriter
重定向標準輸入輸出
Java的標準輸入輸出分別通過system.in和System.out來代表,默認情況下他們分別代表鍵盤和顯示器
system類里提供了如下三個重定向標準輸入輸出方法:
static void setErr (PrintStream err); static void setIn (InputStream in); static void setOut (PrintStream out);
用法舉例
try(PrintStream ps = new PrintSream (new FileOutputStream ("out.txt"))) { System.setOut (ps); } catch (IOException ex) { ex.printStackTrace(); }