IO流 -筆記

字符流

使用字符流進行文本複製:

	public  void test1()  {
		//創建輸入/輸出流對象
		FileReader fr = null;
		FileWriter fw = null;
		try {
			//創建File類,指明讀入/寫出文件
			File srcFile = new File("hello.txt");
			File destFile = new File("hello2.txt");
			fr = new FileReader(srcFile);
			fw = new FileWriter(destFile);
			//進行讀入寫出操作
			char[] cbuf = new char[10];//每次讀是個字符
			int len;//用於記錄每次讀入到數組中的個數
			while((len=fr.read(cbuf)) != -1){
				//每次寫出len個字符
				fw.write(cbuf,0,len);
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			//關閉流
		try {
			if(fr != null){
			fr.close();
			}
			if(fw != null){
			fw.close();
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		}
	}

字節流

使用字節流進行非文本文件的複製:

public  void test1()  {
		//創建輸入/輸出流對象
		FileInputStream fis= null;
		FileOutputStream fos= null;
		try {
			//創建File類,指明讀入/寫出文件
			File srcFile = new File("01.jpg");
			File destFile = new File("02.jpg");
			fis= new FileInputStream(srcFile);
			fos= new FileOutputStream(destFile);
			//進行讀入寫出操作
			byte[] buffer = new byte[10];//每次讀是個字符
			int len;//用於記錄每次讀入到數組中的個數
			while((len=fis.read(buffer)) != -1){
				//每次寫出len個字符
				fos.write(buffer,0,len);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			//關閉流
		try {
			if(fis!= null){
			fis.close();
			}
			if(fos!= null){
			fos.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		}
	}

緩衝流

緩衝流比節點流處理文件速度更快

使用緩衝流進行非文本文件的複製:

public  void test1()  {
		//創建輸入/輸出流對象
		BufferedInputStream bis = null;
		BufferedOutputStream bos = null;
		try {
			//創建File類,指明讀入/寫出文件
			File srcFile = new File("01.jpg");
			File destFile = new File("02.jpg");
			FileInputStream fis = new FileInputStream(srcFile);
			FileOutputStream fos = new FileOutputStream(destFile);
			//創造緩衝流
			bis = new BufferedInputStream(fis);
			bos = new BufferedOutputStream(fos);
			//進行讀入寫出操作
			byte[] buffer = new byte[10];//每次讀是個字符
			int len;//用於記錄每次讀入到數組中的個數
			while((len=fis.read(buffer)) != -1){
				//每次寫出len個字符
				fos.write(buffer,0,len);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			//關閉流
		try {
			if(bis != null){
				bis.close();
			}
			if(bos != null){
				bos.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		}
	}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章