FileInputStream in=new FileInputStream("yyyyy.yyy");
FileOutputStream out=new FileOutputStream("xxxxx.yyy);
byte[] b=new byte[1024];
int length=0;
while((length=in.read(b))!=-1){
out.read(b,0,length);
}
out.flush();
out.close();
in.close();
一段实现大文件复制的程序,我大概知道一点就是flush的作用是清空缓冲区,谁能帮我讲明白点
ããjava.io.OutputStream.flush() æ¹æ³å·æ°æ¤è¾åºæµå¹¶å¼ºå¶å°ææç¼å²çè¾åºåè被ååºãå·æ°ç常è§åå®æ¯ï¼è°ç¨å®æ¯ä¸ä¸ªè¿¹è±¡è¡¨æï¼å¦æ以ååçä»»ä½åèé½è¢«ç¼å²çè¾åºæµçå®ç°ï¼å¦åèåºç«å³åå ¥å°å®ä»¬çç®çå°ã
ããæ¤æµçé¢æç®æ æ¯ç±åºå±çæä½ç³»ç»ï¼ä¾å¦ä¸ä¸ªæ件ï¼ç¶åå·æ°æµä¿è¯æä¾äºä¸ä¸ªæ½è±¡åªæ¯å ååå ¥çåèæµä¼ éç»æä½ç³»ç»è¿è¡åå ¥;å®å¹¶ä¸è½ä¿è¯ä»ä»¬å®é ä¸åçæ¯ä¸ä¸ªç©ç设å¤ï¼å¦ç£ç驱å¨å¨ã
ããOutputStreamä¸çflushæ¹æ³ä¸æ§è¡ä»»ä½æä½ã
ããä¸é¢ç示ä¾æ¼ç¤ºjava.io.OutputStream.flush()æ¹æ³çç¨æ³ï¼
package com.yiibai;å°äº§ç以ä¸ç»æï¼
API帮助文档里的内容我都看过了
追答那你是 哪不懂 API不是写的明明白白了?
追问看不太明白?我是觉得使用FileOutputStream中的write(byte[] b)方法时才需要在最后调用flush()方法,还是说write(int i)的方法时候也需要?
追答两方法在 jdk里实现的 原理一样!只不过进行了封装 方便用户
本回答被网友采纳