封裝關(guān)于操作文件的一個(gè)類(計(jì)算媒殉,拷貝,合并摔敛,移動(dòng)廷蓉,刪除等)

這是關(guān)于一個(gè)封裝操作文件的一個(gè)類。

其中包括:

計(jì)算文件大小马昙,拷貝文件夾以及圖片桃犬,音頻和視屏,合并文件行楞,移動(dòng)文件位置攒暇,刪除文件等操作。(僅供參考)


import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.io.SequenceInputStream;

class HyjFileClass {


//1.獲取文件大小,只需傳一個(gè)文件路徑的實(shí)參子房,返回值是文件大小(long類型),返回值只表示文件的字節(jié)大小证杭。

/* ??

? ? ? ? ? ? ? ? ? ?1.1.計(jì)算文件大小:long size = getFileSize(File file)

? ? ? ? ? ? ? ? ? ?file:傳入一個(gè)文件路徑田度,計(jì)算文件夾中所有的文件大小,

? ? ? ? ? ? ? ? ? ?返回值是一個(gè)long類型的字節(jié)數(shù)解愤。

*/

public long getFileSize(File file){

? ? ? ? ? ? ? ? ? ? ? ?long fileSize = 0;

? ? ? ? ? ? ? ? ? ? ? ? File[] files = file.listFiles();

? ? ? ? ? ? ? ? ? ? ? ? ?if (file.isFile()) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? return file.length();

? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? if (file != null) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?for (File file2 : files) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? fileSize += getFileSize(file2);

? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ?}

? ? ? ? ? ? ?return fileSize;

}


//2.把一個(gè)文件夾拷貝到另一個(gè)文件夾里---------------------

/*

? ? ? ? ? ? ? 2.1拷貝文件夾:getCopyFile(File filePath,File newFilePath)

? ? ? ? ? ? ? ? ? filePath: 需要拷貝的文件路徑镇饺,

? ? ? ? ? ? ? ? ? newFilePath: 存放文件的路徑

? ? ? ? ? ? ? ? ?使用時(shí)只需要傳入要拷貝的路徑和一個(gè)存放的路徑就可以了。

*/

public void getCopyFile(File filePath,File newFilePath) throws IOException{

? ? ? ? ? ? ? ?File[] files = filePath.listFiles();

? ? ? ? ? ? ? ?File tempFile = null;

? ? ? ? ? ? ? if (!(newFilePath.isDirectory())) {

? ? ? ? ? ? ? ? ? ? ? ? ? ?//創(chuàng)建目錄

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?newFilePath.mkdir();

? ? ? ? ? ? ?}

? ? ? ? ? ?if (filePath != null) {

? ? ? ? ? ? ? ? ? ?for (File file : files) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if (file.isDirectory()) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?String string = file.getName();

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?tempFile = new File(newFilePath+"\\"+string);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?tempFile.mkdir();

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?getCopyFile(file, tempFile);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }else if (file.isFile()) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?String string = file.getName();

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? tempFile = new File(newFilePath+"\\"+string);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? tempFile.createNewFile();

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?getCopyFileContent(file,tempFile);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}

? ? ? ? ? ? ? }

? ? ? ? ?}


//3.拷貝圖片送讲,視頻奸笤,音頻等不需解碼的文件----------------------------

/*

? ? ? ? ? ? ? 3.1字節(jié)流拷貝圖片,視頻哼鬓,音頻等文件:getCopyFileContent(File file,File file2)

? ? ? ? ? ? ? ? ? ?file: 要拷貝的文件路徑

? ? ? ? ? ? ? ? ? file2: 存放路徑

? ? ? ? ? ? ? ? ?字節(jié)流適用于拷貝圖片监右,視頻,音頻等一些不需要解碼的文件魄宏,

? ? ? ? ? ? ? ? ?使用時(shí)只需要傳入要拷貝的路徑和一個(gè)存放的路徑就可以了秸侣。

*/

public void getCopyFileContent(File file,File file2) throws IOException{

? ? ? ? ? ? ? ? ? ? ? FileInputStream inputStream = new FileInputStream(file);

? ? ? ? ? ? ? ? ? ? ? FileOutputStream outputStream = new FileOutputStream(file2);

? ? ? ? ? ? ? ? ? ? ? byte[] b = new byte[1024];

? ? ? ? ? ? ? ? ? ? ? int count = 0;

? ? ? ? ? ? ? ? ? ? ? while ((count = inputStream.read(b)) != -1) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?outputStream.write(b,0,count);

? ? ? ? ? ? ? ? ? ? ?}

? ? ? ? ? ? ? ? ? ?inputStream.close();

? ? ? ? ? ? ? ? ? outputStream.close();

? }


//4.用字符流來(lái)拷貝,當(dāng)用此方法來(lái)拷貝圖片,視頻宠互,音頻等文件時(shí)味榛,這些文件將不能被打開(kāi)。---

/*

? ? ? ? ? ? ?4.1.字符流拷貝文件:getFileRead(File file , File file2)

? ? ? ? ? ? ? ? ? file: 要拷貝的文件路徑

? ? ? ? ? ? ? ? ?file2: 存放路徑

? ? ? ? ? ? ? ? 字符流適用于拷貝一些需要解碼操作的文件予跌,但是不能實(shí)用字符流來(lái)拷貝圖片搏色,音頻,

? ? ? ? ? ? ? 視頻等券册。使用字符流可能會(huì)導(dǎo)致文件丟失频轿。而不能正常打開(kāi)垂涯。

*/

public void getFileRead(File file , File file2) throws IOException {

? ? ? ? ? ? ? ? ? ? ? ?FileReader fileReader = new FileReader(file);

? ? ? ? ? ? ? ? ? ? ? ?FileWriter fileWriter = new FileWriter(file2);

? ? ? ? ? ? ? ? ? ? ? ?char[] b = new char[1024];

? ? ? ? ? ? ? ? ? ? ? ?int count = 0;

? ? ? ? ? ? ? ? ? ? ? while ((count = fileReader.read(b)) != -1) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?fileWriter.write(b,0,count);

? ? ? ? ? ? ? ? ? ? ? ?}

? ? ? ? ? ? ? ? ? ? ?fileWriter.close();

? ? ? ? ? ? ? ? ? ? ?fileReader.close();

}


//5.合并文件---------------------------------------

/*

? ? ? ? ? ? ? ? ? ? 5.1.MergeFile(File file , File file2,File file3):合并兩個(gè)文件

? ? ? ? ? ? ? ? ? ? ? ? ? file: 需要合并的文件路徑

? ? ? ? ? ? ? ? ? ? ? ? ?file2: 需要合并的文件路徑

? ? ? ? ? ? ? ? ? ? ? ? ?file3: 合并之后的文件路徑

? ? ? ? ? ? ? ? ? ? ? ? 該方法可以實(shí)現(xiàn)兩個(gè)文件的拼接,并且返回一個(gè)新的文件航邢。

*/

public void MergeFile(File file , File file2, File file3) throws IOException {

? ? ? ? ? ? ? ? ? ? ? ? ? FileInputStream fileInputStream = new FileInputStream(file);

? ? ? ? ? ? ? ? ? ? ? ? ? FileInputStream fileInputStream2 = new FileInputStream(file2);

? ? ? ? ? ? ? ? ? ? ? ? ? FileOutputStream outputStream = new FileOutputStream(file3);

? ? ? ? ? ? ? ? ? ? ? ? ? SequenceInputStream inputStream = new SequenceInputStream(fileInputStream, fileInputStream2);

? ? ? ? ? ? ? ? ? ? ? ? ?byte[] b = new byte[1024];

? ? ? ? ? ? ? ? ? ? ? ? ?while (inputStream.read(b) != -1) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? outputStream.write(b);

? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?outputStream.close();

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?inputStream.close();

}


//6.把文件移動(dòng)到新的路徑下 file:要移動(dòng)的路徑 file2:接收移動(dòng)的路徑---------

/*

? ? ? ? ? ? ? ? ? ?6.1.MoveFileToNewPath(File file, File file2):把目標(biāo)文件移動(dòng)到指定的路徑下

? ? ? ? ? ? ? ? ? ? ? ? ?file: 需要移動(dòng)的文件路徑

? ? ? ? ? ? ? ? ? ? ? ? file2: 接收移動(dòng)過(guò)來(lái)的文件路徑

? ? ? ? ? ? ? ? ? ? ? ? 該方法可以把一個(gè)文件夾移動(dòng)到指定的路徑下耕赘,并且刪除原來(lái)的文件。

*/

public void MoveFileToNewPath(File file, File file2) throws IOException{

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?File file3 = new File(file2.getPath() + "\\" + file.getName());

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //把文件復(fù)制到指定的路徑上

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?getCopyFile(file, file3);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //清空原來(lái)的文件夾并且刪除

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? getDeleteFile(file);

}

? ? ? ? ? ? ? ? ? ? ? ? ? ? //遞歸刪除整個(gè)文件夾

? ? ? ? ? ? ? ? ? ? ? ? ? public void getDeleteFile(File file){

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? File[] files = file.listFiles();

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if (file != null) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? for (File file2 : files) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?if (file2.isDirectory()) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? getDeleteFile(file2);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }else {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?file2.delete();

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? file.delete();

? ? ? ? ? ? ? ? ? ? ? ? ? }

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末膳殷,一起剝皮案震驚了整個(gè)濱河市操骡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌赚窃,老刑警劉巖册招,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異勒极,居然都是意外死亡是掰,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門辱匿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)键痛,“玉大人,你說(shuō)我怎么就攤上這事匾七∩⑿荩” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵乐尊,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我划址,道長(zhǎng)扔嵌,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任夺颤,我火速辦了婚禮痢缎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘世澜。我一直安慰自己独旷,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布寥裂。 她就那樣靜靜地躺著嵌洼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪封恰。 梳的紋絲不亂的頭發(fā)上麻养,一...
    開(kāi)封第一講書(shū)人閱讀 49,784評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音诺舔,去河邊找鬼鳖昌。 笑死备畦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的许昨。 我是一名探鬼主播懂盐,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼糕档!你這毒婦竟也來(lái)了莉恼?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤翼岁,失蹤者是張志新(化名)和其女友劉穎类垫,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體琅坡,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡悉患,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了榆俺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片售躁。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖茴晋,靈堂內(nèi)的尸體忽然破棺而出陪捷,到底是詐尸還是另有隱情,我是刑警寧澤诺擅,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布市袖,位于F島的核電站,受9級(jí)特大地震影響烁涌,放射性物質(zhì)發(fā)生泄漏苍碟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一撮执、第九天 我趴在偏房一處隱蔽的房頂上張望微峰。 院中可真熱鬧,春花似錦抒钱、人聲如沸蜓肆。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)仗扬。三九已至,卻和暖如春瑞信,著一層夾襖步出監(jiān)牢的瞬間厉颤,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工凡简, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留逼友,地道東北人精肃。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像帜乞,于是被迫代替她去往敵國(guó)和親司抱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容