亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

程序運行太卡,并且復制的文件太大

public static void CopyFileByFile(File preFile,?? ?File nexFile)throws IOException{
?? ?if(!preFile.exists()){
?? ??? ?throw new IllegalArgumentException("文件"+preFile+"不存在");
?? ?}
?? ?if(!preFile.isFile()){
?? ??? ?throw new IllegalArgumentException(preFile+"不是文件");
?? ?}
?? ?FileInputStream in=new FileInputStream(preFile);
?? ?FileOutputStream out=new FileOutputStream(nexFile);
?? ?byte[]bye=new byte[1024];
?? ?int b=in.read(bye, 0, bye.length);
?? ?while(b!=-1){
?? ?out.write(bye,0,b);
?? ?/*
?? ? * 這個方法的作用是把緩沖區的數據輸出。
?? ? * 一般在讀寫流的時候,數據是先被讀到了內存中,
?? ? * 再把數據寫到文件中,當數據讀完的時候不代表數據已經寫完了,
?? ? * 因為還有一部分有可能會留在內存這個緩沖區中。
?? ? * 這時候如果調用了close()方法關閉了讀寫流,
?? ? * 那么這部分數據就會丟失,所以應該在關閉讀寫流之前先flush()。
?? ? */
?? ?}
?? ?in.close();
?? ?out.close();
}

正在回答

3 回答

謝謝啦,太不仔細了

0 回復 有任何疑惑可以回復我~

這個不是運行太卡,你這個是int b = in.read(bye,0,bye.length)讀取文件的時候,不是寫在while循環中,并不能進行判斷文件是否讀完。你都已經是死循環了,應該寫到while循環中進行判斷。你的代碼寫的是一直在nexFile文件中進行寫操作。

0 回復 有任何疑惑可以回復我~

把開辟的內存放大一些

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

程序運行太卡,并且復制的文件太大

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號