一、IOwindows
I-------->Input 輸入
O-------->OutPut 輸出數組
IO解決的問題 設備之間數據的傳輸問題
設備: 內存----->硬盤 鍵盤---------->內存 硬盤------>內存 app
通俗點講:是數據的傳輸
圖片的複製 圖片的傳輸
二、File類
file類主要的功能定位目標文件函數
分隔符
在windows環境下的分隔符 \ 可是因爲在Java中\ 須要轉意義 \\
在Linux環境下 /
後來window兼容了這兩種寫法 也就是說在Windows狀況下 \\ /
後來sun爲了規範這種寫法 File類中提供了一個方法來動態的生成分隔符
定位目標文件的格式是:
File file=new File(目標文件的地址);對象
目標文件的地址:
盤符:C D E......圖片
路徑的構成
絕對路徑(就是這個文件的盤符下的完整地址)
盤符:\\....文件
String path="G:"+File.separator+"infor.txt";//(建議的寫法)
String path1="G:\\infor.txt";
String path2="G:/infor.txt";內存
相對路徑
相對:相對的是那個當前工程目錄
. 定位的是當前工程的根目錄
.. 定位的是當前工程根目錄的上一級目錄資源
不在同一盤符下是不能寫相對路徑的字符串
3.File類中的方法
separator 與系統有關的默認名稱分隔符 可以根據系統的不一樣來動態的生成那個分隔符
構造函數
1:File(File parent, String child) 根據 parent 抽象路徑名和 child 路徑名字符串建立一個新 File 實例。
2:File(String pathname) 經過將給定路徑名字符串轉換爲抽象路徑名來建立一個新 File 實例。
3:File(String parent, String child) 根據 parent 路徑名字符串和 child 路徑名字符串建立一個新 File 實例
4:File(URI uri) 經過將給定的 file: URI 轉換爲一個抽象路徑名來建立一個新的 File 實例。
四、File類裏面的方法
createNewFile() :建立文件
exists() 判斷文件是否存在
getAbsolutePath() 返回絕對路徑名 很噁心
getName()返回路徑上的文件的名稱
getParent()返回他爹的路徑 噁心
isAbsolute()斷定是否爲絕對的路徑
isDirectory() :斷定當前的文件是否是目錄
isFile():斷定文件是否是文件
Length():獲取那個文件的長度
list() :把一個目錄下面的全部文件和文件夾的名稱返回給一個數組
listFiles() :把當前路徑下的文件或者文件夾以File的形式返回來
mkdir() :建立目錄
mkdirs() :建立的是級聯目錄
renameTo(File dest) 至關於給文件從新命名get
五、字節流
字節輸入流
---------------------------------|InputStream
字節輸出流
--------------------------------|OutputStream
輸入或者輸出是相對有當前程序而言的
輸入表示的是程序要獲取數據
輸出表示的是程序要寫出數據
六、FileInputStream
read() 今後輸入流中讀取一個數據字節 返回的就是當前讀取的字節
讀取文件
1:定位目標文件-------->咱們要讀取那一個文件的內容--->經過File類來進行定位的
2:創建傳輸的通道------>FileInputStream();
3:讀取文件
4:關閉鏈接
讀取文件的時候
1:可使用:in.read()函數來一個字節一個字節的讀 注意:該方法的返回值就是讀取到的那個字符 若是須要顯示的話那麼是須要那麼強制類型的轉換的
2:讀取文件的時候若是採用的是那個in.read(buf)這個方法的
意思是:從目標文件讀取buf長度個數據到buf這個數組中,返回當前這一次讀取到實際的長度
注意:流讀取完畢必定要關閉鏈接,不然資源不會被釋放
七、文件輸出流
FileOutPutStream
FileOutputStream(File file) 建立一個向指定 File 對象表示的文件中寫入數據的文件輸出流。
FileOutputStream(File file, boolean append) 建立一個向指定 File 對象表示的文件中寫入數據的文件輸出流。
FileOutputStream(String name) 建立一個向具備指定名稱的文件中寫入數據的輸出文件流。
FileOutputStream(String name, boolean append) 建立一個向具備指定 name 的文件中寫入數據的輸出文件流。
append:追加
true:表示向源文件進行追加
false:不追加那就是覆蓋
字節流是不能直接寫字符串的 write(byte[]): 表示的是能直接寫字節數組到目標文件