package com.atguigu.java;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.print.attribute.standard.Destination;
import org.junit.Test;
/*
* 抽象基類 節(jié)點(diǎn)流(文件流) 緩沖流(處理流的一種,可以提高文件處理效率)
* InputStream FileInputStream BufferedInputStream
* OutputStream FileOutputStream BufferedOutputStream (flus())
* Reader FileReader BufferedReader (readLine())
* Writer FileWriter BufferedWriter (flus())(bw.newLine())
*/
public class testBuffered {
@Test
public void testBufferedReader(){
BufferedReader br = null;
BufferedWriter bw = null;
try {
File file = new File("07.txt");
File file1 = new File("08.txt");
FileReader fr = new FileReader(file);
FileWriter fw = new FileWriter(file1);
br = new BufferedReader(fr);
bw = new BufferedWriter(fw);
// char[] c = new char[1024];
// int len;
// while((len = br.read(c))!= -1){
// String str = new String(c, 0, len);
// System.out.println(str);
// }
String str;
while((str = br.readLine()) != null){
// System.out.println(str);
bw.write(str);//上面是在一行讀出來(lái)的,現(xiàn)在寫(xiě)也不會(huì)換行,加入新方法
// System.out.println();//不換行
// bw.write(str + "\n");//這種方法換行也可以
bw.newLine();
bw.flush();
}
} catch (Exception e) {
e.printStackTrace();
}finally{//先關(guān)吧
if(bw != null){
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(br != null){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
@Test
public void testCopyFile(){
long start = System.currentTimeMillis();
String src = "C:\\Users\\xiaotinh\\Desktop\\03.jpg";
String dest = "C:\\Users\\xiaotinh\\Desktop\\05.jpg";
copyFile(src, dest);
long end = System.currentTimeMillis();
System.out.println("文件復(fù)制的時(shí)間:" + (end - start));//15ms
}
//使用緩沖流實(shí)現(xiàn)文件的復(fù)制的方法
public void copyFile(String src,String dest){
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
//1.提供讀入、寫(xiě)出的文件
File file1 = new File(src);
File file2 = new File(dest);
//2.先創(chuàng)建相應(yīng)的節(jié)點(diǎn)流:FileInputStream、FileOutputStream
FileInputStream fis = new FileInputStream(file1);
FileOutputStream fos = new FileOutputStream(file2);
//3.將創(chuàng)建的節(jié)點(diǎn)流的對(duì)象作為形參傳遞給緩沖流的構(gòu)造器中
bis = new BufferedInputStream(fis);
bos = new BufferedOutputStream(fos);
//4.具體的實(shí)現(xiàn)文件復(fù)制的操作
byte[] b = new byte[1024];
int len;
while((len = bis.read(b)) != -1){
bos.write(b, 0, len);
bos.flush();//最好后面都加一句這個(gè),因?yàn)榍懊鎺状味紝?xiě)出去了,
//但是到最后一句的時(shí)候,可能沒(méi)有寫(xiě)滿,這時(shí)需要清空一下,防止對(duì)下次有影響
}
} catch (Exception e) {
e.printStackTrace();
} finally{
//5.關(guān)閉相應(yīng)的流
if(bos != null){
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(bis != null){
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
//使用BufferedInputStream和BufferedOutputStream實(shí)現(xiàn)非文本文件的復(fù)制
@Test
public void testBufferedInputOutputStream(){
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
//1.提供讀入、寫(xiě)出的文件
File file1 = new File("C:\\Users\\xiaotinh\\Desktop\\03.jpg");
File file2 = new File("C:\\Users\\xiaotinh\\Desktop\\04.jpg");
//2.先創(chuàng)建相應(yīng)的節(jié)點(diǎn)流:FileInputStream、FileOutputStream
FileInputStream fis = new FileInputStream(file1);
FileOutputStream fos = new FileOutputStream(file2);
//3.將創(chuàng)建的節(jié)點(diǎn)流的對(duì)象作為形參傳遞給緩沖流的構(gòu)造器中
bis = new BufferedInputStream(fis);
bos = new BufferedOutputStream(fos);
//4.具體的實(shí)現(xiàn)文件復(fù)制的操作
byte[] b = new byte[1024];
int len;
while((len = bis.read(b)) != -1){
bos.write(b, 0, len);
bos.flush();
}
} catch (Exception e) {
e.printStackTrace();
} finally{
//5.關(guān)閉相應(yīng)的流
if(bos != null){
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(bis != null){
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
IO4:Buffered~--java30(02/25/2016)
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
- 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事?!?“怎么了?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
- 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
- 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
- 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
- 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 《四個(gè)大爺歷“險(xiǎn)”記》--啾啾通話后帶給我的新心刺激點(diǎn)(2016年10月25日)武立啾啾美拍實(shí)踐落地-三大爺瑞康篇...
- 一切都是用實(shí)力說(shuō)話。 戰(zhàn)爭(zhēng)時(shí)期如此,沒(méi)有現(xiàn)場(chǎng)上的實(shí)力,現(xiàn)場(chǎng)外的一切輿論和談判都是無(wú)效的。 在工作場(chǎng)合,沒(méi)有干事和交...
- 20160512(15)【早安詩(shī)】 世界那么大 與我何干 我照樣 兩耳不聞窗外事 一心只 耕三分地
- 在一個(gè)環(huán)境中呆久了,就會(huì)漸漸地適應(yīng)它,并且用各種各樣的理由將其合理化。而這個(gè)時(shí)候,能否跳出來(lái),重新審視自己并作出改...