java中的io流------文件以字節流的形式拷貝


最近學習到了java流然后寫了一個小程序,通過字節流來拷貝一個文件。

先貼上源碼:

 

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

public class InputOutPutSteamDemo {

	public static void main(String[] args) throws Exception {
		
		//文件的拷貝
		
		FileInputStream fis = new FileInputStream("d://20170620.rar");
		FileOutputStream fos = new FileOutputStream("e://20170620_copy.rar");
		//設置一個緩存數組可以一次讀取多個字節,提高了效率
		byte[] buffer = new byte[1024];
		int length = 0;
          //這個可以有多種讀入和寫入字節的方式,可以自己選擇 while((length=fis.read(buffer))!=-1) { fos.write(buffer,0,length); fos.flush(); } fos.close(); fis.close(); } }

首先通過new一個FileInputStream來讀取出要拷貝的文件的字節流,然后通過FileOutputStream輸出流也就是寫入流來確定具體要寫入到哪個文件中去
(這里聲明如果要寫入的文件不存在,會自動在指定位置上創建出指定的文件。)
然后就是普通的讀字節和寫字節了(這里是通過判斷讀取到的字節數是否為-1,當讀到的字節數為-1時,就意味着已經讀到文件末尾,即退出循環)
(然后在往流里寫入字節的時候要注意使用三個參數的那個方法,因為當文件大於你設置的緩沖數組時,就肯定要讀取多次,到最后一次有可能會填不滿緩沖數組,
也就是數組中的后面部分數據未被覆蓋如果直接寫入整個數組的話,會導致文件拷貝出錯,所以要使用有偏移量的那個方法,最后一次我讀到了多少個字節我就寫入多少個字節。)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM