輸入輸出操作的區別:
輸出操作:從記憶體到硬碟(寫入)
輸入操作:從硬碟到記憶體(讀取)
file類中,封裝的是:檔案和資料夾、路徑,系統中除了檔案和資料夾,沒別的了。
流的分類:
輸入輸出
位元組inputstream
outputstream
字元reader
writer
路徑分隔符:
system.out.println("與系統有關的路徑分隔符:"+file.pathseparator);
system.out.println("與系統有關的預設名稱分隔符:"+file.separator);
//與系統有關的路徑分隔符:;
//與系統有關的預設名稱分隔符:\
分號指的是window系統的多個路徑之間的分隔符(如果是linux是冒號:)
反斜槓指的是路徑裡面的分隔符,linux是/,windows是\
file類構造方法:
file類的構造方法不校驗檔案是否真實存在
file(string parent, string child) ,是為了靈活傳輸不同的子路徑
file(file parent, string child) ,是為了能調父路徑的方法
根據需要選擇構造方法
目錄:
directory 資料夾的學名
相對路徑:
建立檔案的步驟:
1:明確建立檔案的位置
2:建立檔案、處理異常
createnewfile不指定副檔名,建立的還是沒有副檔名的檔案,而不是資料夾
刪除檔案的步驟:
1:明確要刪除的檔案的位置
2:呼叫file類的delete方法
public static void method03() throws ioexception
如果檔案或資料夾本身就不存在,那麼isfile、isdirectory返回一定是false
還需要注意如果刪除的是資料夾,資料夾必須是空的才能被刪除
建立資料夾的步驟:
使用mkdir、mkdirs方法
mkdir指定副檔名,建立的還是是資料夾,如果建立多級資料夾,需用mkdirs
獲取資料夾下的所有檔案和資料夾:
list返回string陣列
filelist返回file陣列
注意只能獲取一級,不包含子目錄裡的
檔案過濾器:
filenamefilter:按檔名過濾
filefilter:按檔案物件特點過濾
要注意考慮的:
window下檔名不區分大小寫:
file files = file.listfiles((file typef) -> typef.getname().tolowercase().endswith(".txt") && typef.isfile());
遞迴:
方法自己呼叫自己
一定要設定出口
迭代次數不能太多
迴圈已知次數,遞迴不知道
檔案過濾器的簡化寫法:
(找出該目錄下的txt檔案,不包含子目錄)
原**(實現filefilter介面,建立實現類物件):
class myfilter implements簡化(匿名內部類)filefilter
else
}}public
class
main }}
public繼續簡化(lambada表示式)class
main
else
}})) }}
public測試緩衝陣列大小對檔案複製速度的影響:(video檔案大為100m)class
main
else
})) }}
publicbuffer陣列長度static
void main(string args) throws
ioexception
long et =system.currenttimemillis();
system.out.println("複製完成,用時:"+(et-st)/1000.0+"秒");
fis.close();
fos.close();
}
複製用時(秒)
647.168
1284.336
2562.108
由此可見buffer陣列長度越大,複製越快。
對比使用緩衝流和不使用緩衝流複製的速度:
2023年5月24日 2023年5月24日
2010年5月24日那天晚上,我下班回家,吃完飯,雖然我不記得是自己做的飯還是買回來吃的.我捧起了 第五版 開始了我的程式生涯.在那之前是我研究了6個月還是8個月開了我的傳奇私服,十分對戰 接著是2個月的運營後花光了所有積蓄,聽起來挺嚇人,其實就5000塊而已.在這之前,是我剛開始參加工作,就感覺自...
2023年5月24日 2023年5月24日
今天是第六年.我可能要感謝那天的自己吧,窗外是熙攘的歡聲笑語,我吃完了晚飯趁著太遠還沒下山,捧著我那本 去年到今年這一年,先是度過了找工作的困擾.之後憤然離開布斯來到了北京.當時加入一家不是做遊戲的公司,我是很抗拒的.畢竟是工作後第一次離開遊戲圈,加入家具圈.當時的考慮就是一是投了那麼多簡歷,那個於...
2023年2月18日 6月5日目標 階段
除去開學期間的忙碌以及部分假期的事情約100天左右 顧目標作14 15周左右計算 提公升基礎編碼能力 提高英語和數學基礎水平 了解資料結構與演算法 基礎體能強化 1 資料結構 2 c的高階 3 演算法導論 4 英語寫作與背誦 5 高等數學基礎 6 線性代數基礎 7 長跑 1.線性表 2.棧,佇列,陣...