最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Java:IO流,復(fù)制圖片或視頻等,字節(jié)流,輸入,剪切文件,復(fù)制,測試效率【詩書畫唱】

2020-07-15 17:59 作者:詩書畫唱  | 我要投稿

字節(jié)流可以讀取任何類型的文件,因此也可以讀取文本類型的文件

自己出題,自己深入了解和理解思考是一種很好的學(xué)習(xí)方法。


復(fù)制刪除(剪切)圖片,設(shè)置每次讀取字節(jié)長度為100,求出共讀取的字節(jié)總長度,求出復(fù)制所用的時間





package IO;

?

import java.io.*;



public class lizi4 {

?

public static void main(String[] args)? throws Exception{

File weJianLuJing=new File("D://集成開發(fā)工具/7.jpg");

//用FileInputStream聲明讀取的字節(jié)流:

FileInputStream shuRuLiu=new FileInputStream(weJianLuJing);

//用FileOutputStream聲明寫入的字節(jié)流:

//用XXX getName()得到XXX的名字,這里當(dāng)作相對路徑,這樣的話,

//XXX就會復(fù)制到相對路徑

FileOutputStream shuChuLiu=

new FileOutputStream(weJianLuJing . getName());



long startTime=System. currentTimeMillis() ;

//用字節(jié)數(shù)組byte[]當(dāng)作容器

byte[] ziJieShuZu=new byte [100];

// 這里的100表示每次讀取的字節(jié)的長度

int xiaBiaoLength;



// xiaBiaoLength:下標(biāo)的長度,就是數(shù)組長度

int ziJieZongChangDu=0;

int count=0;

while((xiaBiaoLength=shuRuLiu.read(ziJieShuZu))!=-1){

System. out . println("這次讀取的字節(jié)長度:"+xiaBiaoLength);


count++;

ziJieZongChangDu=ziJieZongChangDu+xiaBiaoLength;

// 下面會寫出下標(biāo)0到xiaBiaoLength-1(含頭含尾)的字節(jié)

shuChuLiu.write(ziJieShuZu,0,xiaBiaoLength) ;


shuChuLiu. flush();




}

System. out . println("讀取的文件的字節(jié)總長度:"

+ziJieZongChangDu);


System. out . println("讀取文件的次數(shù):"

+count+"次");

long endTime=System. currentTimeMillis();

System. out . println("復(fù)制花費的時間為"

+(endTime-startTime)+"毫秒");

shuChuLiu. close();shuRuLiu.close();

weJianLuJing .delete();

//讀的同時要進(jìn)行寫入。


}



// newFileLuJing:新的文件路徑

// oldFileLuJing:舊的文件路徑

//public static void fuZhiFangFa(String oldFileLuJing , String

// newFileLuJing)throws Exception{

// File oldWenJian=new File(oldFileLuJing);

// if(oldWenJian.exists()){

//// wenJianDuQuDaoDeNeiRong:

//// 文件讀取到的內(nèi)容

// FileReader wenJianDuQuDaoDeNeiRong=new FileReader(oldWenJian);

// String wenJianName=oldWenJian . getName();

// File NewWenjian=new File (newFileLuJing, wenJianName) ;

//// wenJianXieLuDeNeiRong:文件寫入的內(nèi)容

// FileWriter wenJianXieLuDeNeiRong

// =new FileWriter(NewWenjian);

// char[] ziJieShuZu=new char[30];

// int ziJieShuZuLength;

// while((ziJieShuZuLength=

//wenJianDuQuDaoDeNeiRong .read(ziJieShuZu))!=-1){

//wenJianXieLuDeNeiRong .?

//write(new String(ziJieShuZu,0,ziJieShuZuLength));

//wenJianXieLuDeNeiRong. flush();}

//wenJianXieLuDeNeiRong. close();

//wenJianDuQuDaoDeNeiRong.close();

// }else{

// System. out. println("文件不存在");

// }

// }


}




案例1:使用字節(jié)流讀取文本文件后打印到控制




package IO;

import java.io.*;

import java.sql.*;

import java.util.Scanner;



public class one {



public static void main(String[] args) throws Exception {


// duQu:讀取

FileReader duQu=new FileReader("xiangDui.txt");


char [] shuZu=new char[10];

int xiaBiao;

while((xiaBiao=duQu.read(shuZu))!=-1){

System.out.print(new String(shuZu,0,xiaBiao));


}

duQu.close();



}



}





案例2:提示用戶輸入一句話,在項目根目錄建

立文本文件aa.txt,將用戶輸入的這句話打印到

aa.txt中




//在項目的相對路徑下新建一個txt文件,內(nèi)容為你對IO流字符流的總結(jié),

//使用IO流讀取該文件的內(nèi)容顯示在控制臺


package IO;

import java.io.*;

import java.sql.*;

import java.util.Scanner;



public class two {



public static void main(String[] args)throws Exception {

File wenjian=new File("src//aa.txt");


wenjian.createNewFile();


System. out . println("創(chuàng)建文件成功!");


Scanner s=new Scanner(System. in);

System. out . println("請輸入一句話");

String? neiRong=s.next() ;


FileWriter xieRu=new FileWriter(wenjian);


xieRu.write(neiRong);

xieRu.flush();


xieRu.close();


System. out . println("輸入內(nèi)容到文件,在文件中打印輸入的內(nèi)容成功");

}



}








案例3:使用字節(jié)流復(fù)制一張圖片到項目根目錄






package IO;

?

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;


public class three {

?

public static void main(String[] args)? throws Exception{

System.out.println("開始復(fù)制...");

copyFangFa("不感興趣偵探動漫OP.gif","Copy不感興趣偵探動漫OP.gif");

System.out.println("復(fù)制成功!");

}



private static void copyFangFa(String yuanLaiWenJian

,String fuZhiWenJian) throws Exception{



File srcFile = new File(yuanLaiWenJian);

File targetFile = new File(fuZhiWenJian);


InputStream shuRuLiu =? null;

OutputStream shuChuLiu = null;



shuRuLiu = new FileInputStream(srcFile);

shuChuLiu = new FileOutputStream(targetFile);

byte[] byteShuZu = new byte[1024];


// xiaBiaoEnd:下標(biāo)的結(jié)尾

int xiaBiaoEnd = -1;

// 下面的代碼的意思是:當(dāng)沒!=-1的時候就一直循環(huán)查詢,當(dāng)查詢

// 到下標(biāo)末尾-1時,表明已經(jīng)都從頭到尾查找完了

// shuRuLiu.read(byteShuZu)也是在讀取內(nèi)容數(shù)值下標(biāo),

// 這里是int類型的字節(jié)

// 數(shù)組的下標(biāo)

while((xiaBiaoEnd = shuRuLiu.read(byteShuZu))!=-1) {




shuChuLiu.write(byteShuZu,0,xiaBiaoEnd);

}



if(shuRuLiu != null){ shuRuLiu.close();}

if(shuChuLiu != null) {shuChuLiu.close();}

}?


}

?









案例4:使用字節(jié)流剪切一個文件



package IO;

?

import java.io.*;



public class lizi4 {

?

public static void main(String[] args)? throws Exception{

File weJianLuJing=new File("D://集成開發(fā)工具/7.jpg");

//用FileInputStream聲明讀取的字節(jié)流:

FileInputStream shuRuLiu=new FileInputStream(weJianLuJing);

//用FileOutputStream聲明寫入的字節(jié)流:

//用XXX getName()得到XXX的名字,這里當(dāng)作相對路徑,這樣的話,

//XXX就會復(fù)制到相對路徑

FileOutputStream shuChuLiu=

new FileOutputStream(weJianLuJing . getName());

//用字節(jié)數(shù)組byte[]當(dāng)作容器

byte[] ziJieShuZu=new byte [1000];

int xiaBiaoLength;

// xiaBiaoLength:下標(biāo)的長度,就是數(shù)組長度

int index=0;

while((xiaBiaoLength=shuRuLiu.read(ziJieShuZu))!=-1){

// 下面會寫出下標(biāo)0到xiaBiaoLength-1(含頭含尾)的字節(jié)

shuChuLiu.write(ziJieShuZu,0,xiaBiaoLength) ;


shuChuLiu. flush();}

shuChuLiu. close();shuRuLiu.close();

weJianLuJing .delete();

//讀的同時要進(jìn)行寫入。


}



// newFileLuJing:新的文件路徑

// oldFileLuJing:舊的文件路徑

public static void fuZhiFangFa(String oldFileLuJing , String

newFileLuJing)throws Exception{

File oldWenJian=new File(oldFileLuJing);

if(oldWenJian.exists()){

// wenJianDuQuDaoDeNeiRong:

// 文件讀取到的內(nèi)容

FileReader wenJianDuQuDaoDeNeiRong=new FileReader(oldWenJian);

String wenJianName=oldWenJian . getName();

File NewWenjian=new File (newFileLuJing, wenJianName) ;

// wenJianXieLuDeNeiRong:文件寫入的內(nèi)容

FileWriter wenJianXieLuDeNeiRong

=new FileWriter(NewWenjian);

char[] ziJieShuZu=new char[30];

int ziJieShuZuLength;

while((ziJieShuZuLength=

wenJianDuQuDaoDeNeiRong .read(ziJieShuZu))!=-1){

wenJianXieLuDeNeiRong .?

write(new String(ziJieShuZu,0,ziJieShuZuLength));

wenJianXieLuDeNeiRong. flush();}

wenJianXieLuDeNeiRong. close();

wenJianDuQuDaoDeNeiRong.close();

}else{

System. out. println("文件不存在");

}

}

}


執(zhí)行前:


執(zhí)行后:






案例5.字節(jié)流復(fù)制一個文件夾(測試效率,就是求運行的時間)






package IO;


import java.io.*;



public class liZi5 {


public static void main(String[] args) throws Exception{

long startTime=System. currentTimeMillis() ;

copyFangFa(new File("D://集成開發(fā)工具/NewFile"),

new File("D://集成開發(fā)工具/NewFileCopy99"));

long endTime=System. currentTimeMillis();

System. out . println("復(fù)制花費的時間為"+(endTime-startTime));


}

//copyFangFa:復(fù)制文件夾的方法

public static void copyFangFa

(File oldWenJianJia, File CopyOldWenJianJia)throws Exception{

// 思路:

//1.寫一個復(fù)制文件夾的方法,兩個參數(shù),1個參數(shù)是你要復(fù)制的文件夾的原位置

//第二個參數(shù)是你要復(fù)制到的位置

//2.判斷原位置是不是存在,如果存在就獲取文件夾里的所有的文件

//3.獲取到所有的文件后得到的是一個文件的數(shù)組,遍歷這個數(shù)組

//判斷每個文件是文件夾還是文件,如果是文件夾,就重新調(diào)用這個方法

//進(jìn)行遞歸,直到文件的子目錄,如果是文件的話,讀取該文件的信息

//寫入到新文件夾里

CopyOldWenJianJia . mkdir();//創(chuàng)建文件夾

if(!oldWenJianJia. isHidden()){

if(oldWenJianJia.exists()){

File[] FileShuZu=oldWenJianJia. listFiles();

for(File FileShuZuXiaBiao:FileShuZu){

// FileShuZuXiaBiao:文件數(shù)組下標(biāo)

if(FileShuZuXiaBiao.isFile()){

FileInputStream fis=new?

FileInputStream(FileShuZuXiaBiao.getAbsolutePath() );

FileOutputStream fos=new FileOutputStream

(new File(CopyOldWenJianJia.getAbsolutePath(),

FileShuZuXiaBiao.getName() ));


//--long startTime=System. currentTimeMillis() ;

byte[] bs=new byte [1];

int len;

while((len=fis.read(bs))!=-1){

fos. write(bs, 0,len);

fos. flush();}

//currentTimeMillis:當(dāng)前時間轉(zhuǎn)化的總毫秒數(shù)

//--long endTime=System. currentTimeMillis();


fos. close();

fis. close();

//--System. out . println("復(fù)制花費的時間為"+(endTime-startTime));

//flush()用于清理緩存

//close()用于關(guān)閉緩存


}

else{


copyFangFa(FileShuZuXiaBiao,?

new File( CopyOldWenJianJia

+" /"+FileShuZuXiaBiao. getName()));

}


}

}}


}



}






Java:IO流,復(fù)制圖片或視頻等,字節(jié)流,輸入,剪切文件,復(fù)制,測試效率【詩書畫唱】的評論 (共 條)

分享到微博請遵守國家法律
陵川县| 太康县| 延津县| 南城县| 政和县| 泾源县| 泗水县| 微博| 凌海市| 苍山县| 凤凰县| 永善县| 芜湖市| 常宁市| 衡阳市| 南漳县| 太仓市| 白山市| 大名县| 鹤壁市| 张家川| 大邑县| 乐至县| 龙口市| 宜川县| 大姚县| 奉节县| 石棉县| 龙陵县| 嘉义市| 资阳市| 余姚市| 怀安县| 太仓市| 麦盖提县| 达拉特旗| 正镶白旗| 西贡区| 大关县| 彰化县| 灵山县|