javaSE-IO

1.File

file類是文件目錄路徑名的抽象表示形式

//1.創建文件夾,父文件夾不存在會自動創建
File filedir = new File("E:\\demo1\\demo2\\demo3");
System.out.println("mkdir:" + filedir.mkdirs());
//2.創建文件,目錄不存在
File file = new File(filedir, "a.txt");
System.out.println("file:" + file.createNewFile());
//3.創建文件,目錄已存在
File file2 = new File("E:\\demo1\\demo2\\demo3\\b.txt");
System.out.println("file:" + file2.createNewFile());

2. 過濾器功能

File[] listFiles(FilenameFilter filter)

public static void main(String[] args) throws IOException {
		File file = new File("e:\\");
		// 1.先獲取所有的,在遍歷的時候判斷,再輸出
		// 2.先判斷,再獲取
		File[] listFiles = file.listFiles(new FilenameFilter() {
			@Override
			public boolean accept(File dir, String name) {
				boolean condition = new File(dir,name).isFile() && name.endsWith(".jpg");
				return condition;
			}
		});
		
		for (File file2 : listFiles) {
			System.out.println(file2.getName());
			break;
		}
	}

3. IO流的分類

在這裏插入圖片描述

4. FileOutputStream寫數據的的注意事項

a: 創建字節輸出流對象做了幾件事情?

  • 調用系統功能去創建文件
  • 創建fos對象
  • 把fos對象指向這個文件

b: 爲什麼要close()?

  • 讓流對象變成垃圾,這樣就可以被垃圾回收器回收了
  • 通知系統去釋放跟該文件相關的資源

c: 如何實現數據的換行?

  • 在數據添加後寫入換行符
  • 換行符:windows:\r\n,linux:\n,Mac:\r

d: 如何實現數據的追加寫入?

  • 創建一個向具有指定 name 的文件中寫入數據的輸出文件流。如果第二個參數爲 true,則將字節寫入文件末尾處,而不是寫入文件開始處。
    FileOutputStream fos = new FileOutputStream("test.txt", true);

5. 字節緩衝區流

BufferedOutputStream(OutputStream out)
通過定義數組的方式確實比以前一次讀取一個字節的方式快很多,所以,看來有一個緩衝區還是非常好的。
爲什麼傳遞一個OutputStream對象呢?因爲字節緩衝區流僅僅提供緩衝區,爲高效而設計的。但是呢,真正的讀寫操作還得靠基本的流對象實現。

這種類被稱爲:緩衝區類(高效類)

  • 寫數據:BufferedOutputStream
  • 讀數據:BufferedInputStream
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章