處理的代碼邏輯如下:
創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司一直秉承“誠信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個客戶多一個朋友!專注中小微企業(yè)官網(wǎng)定制,成都做網(wǎng)站、網(wǎng)站建設(shè),塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。
public?static?void?main(String?args[])?{
String?saveToFileDir?=?"F:\\整理后的文件存放目錄";
File?file?=?new?File("F:\\所需整理的文件目錄");
processFileFenLei(saveToFileDir,?file);
}
private?static?void?processFileFenLei(String?saveToFileDir,?File?file)?{
if?(file.getName().startsWith("."))?{
return;
}
System.out.println("當(dāng)前處理位置==="?+?file.getAbsolutePath());
if?(file.isFile())?{
processCopyFile(saveToFileDir,?file);
}?else?{
File[]?subFiles?=?file.listFiles();
for?(File?subFile?:?subFiles)?{
processFileFenLei(saveToFileDir,?subFile);
}
}
}
private?static?void?processCopyFile(String?saveToFileDir,?File?file)?{
String?extFileName?=?FileCreateUtil.getFileExtension(file);
String?wholeDir?=?saveToFileDir?+?"\\"?+?extFileName;
File?fileDir?=?new?File(wholeDir);
if?(!fileDir.exists())?{
fileDir.mkdirs();
}
File?saveToFile?=?new?File(wholeDir?+?"\\"?+?file.getName());
FileCreateUtil.saveFileToFile(file,?saveToFile);
}
以上代碼中所用到的文件操作工具類:
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?java.io.InputStream;
import?java.io.InputStreamReader;
import?java.sql.Blob;
import?java.sql.SQLException;
/**
*?@作者?王建明
*?@創(chuàng)建日期?Feb?4,?2010
*?@創(chuàng)建時間?9:56:15?AM
*?@版本號?V?1.0
*/
public?class?FileCreateUtil?{
private?static?final?String?CONTENT_TYPE_IMAGE?=?"image/jpeg";
/**
?*?@說明?將二進(jìn)制字節(jié)流保存為文件
?*?@param?byteArry二進(jìn)制流
?*?@param?file要保存的文件
?*?@throws?SQLException
?*?@throws?IOException
?*/
public?static?void?saveByteArry2File(byte[]?byteArry,?File?file)
throws?SQLException,?IOException?{
BufferedOutputStream?bos?=?new?BufferedOutputStream(
new?FileOutputStream(file));
bos.write(byteArry);
bos.close();
}
/**
?*?@說明?將文件轉(zhuǎn)換為二進(jìn)制字節(jié)流
?*?@param?file要轉(zhuǎn)換的文件
?*?@return
?*?@throws?SQLException
?*?@throws?IOException
?*/
public?static?byte[]?changeFile2Bytes(File?file)?throws?SQLException,
IOException?{
long?len?=?file.length();
byte[]?bytes?=?new?byte[(int)?len];
FileInputStream?inputStream?=?new?FileInputStream(file);
BufferedInputStream?bufferedInputStream?=?new?BufferedInputStream(
inputStream);
int?r?=?bufferedInputStream.read(bytes);
if?(r?!=?len)?{
throw?new?IOException("File?read?error");
}
inputStream.close();
bufferedInputStream.close();
return?bytes;
}
/**
?*?@說明?將Blob類類型的文件轉(zhuǎn)換成二進(jìn)制字節(jié)流
?*?@param?pic
?*?@return
?*?@throws?SQLException
?*?@throws?IOException
?*/
public?static?byte[]?changeBlob2Bytes(Blob?pic)?throws?SQLException,
IOException?{
byte[]?bytes?=?pic.getBytes(1,?(int)?pic.length());
return?bytes;
}
/**
?*?@說明?將Blob類類型的數(shù)據(jù)保存為本地文件
?*?@param?blob
?*?@param?file
?*?@throws?SQLException
?*?@throws?IOException
?*/
public?static?void?saveBlob2File(Blob?blob,?File?file)?throws?SQLException,
IOException?{
InputStream?is?=?blob.getBinaryStream();
BufferedOutputStream?bos?=?new?BufferedOutputStream(
new?FileOutputStream(file));
int?b?=?-1;
while?((b?=?is.read())?!=?-1)?{
bos.write(b);
}
bos.close();
is.close();
}
/**
?*?@說明?將一個文件拷貝到另一個文件中
?*?@param?oldFile源文件
?*?@param?newFile目標(biāo)文件
?*/
public?static?void?saveFileToFile(File?oldFile,?File?newFile)?{
FileInputStream?fis?=?null;
FileOutputStream?fos?=?null;
try?{
fis?=?new?FileInputStream(oldFile);?//?建立文件輸入流
fos?=?new?FileOutputStream(newFile);
int?r;
while?((r?=?fis.read())?!=?-1)?{
fos.write((byte)?r);
}
}?catch?(FileNotFoundException?ex)?{
System.out.println("Source?File?not?found");
}?catch?(IOException?ex)?{
System.out.println(ex.getMessage());
}?finally?{
try?{
if?(fis?!=?null)
fis.close();
if?(fos?!=?null)
fos.close();
}?catch?(IOException?ex)?{
System.out.println(ex);
}
}
}
/**
?*?@說明?獲取文本形式文件的內(nèi)容
?*?@param?file要讀取的文件
?*?@return
?*/
public?static?String?getTxtFileContent(File?file)?{
BufferedReader?br?=?null;
try?{
br?=?new?BufferedReader(new?FileReader(file));
String?line?=?null;
StringBuilder?sb?=?new?StringBuilder((int)?file.length());
while?((line?=?br.readLine())?!=?null)?{
sb.append(line);
sb.append("\n");
}
return?sb.toString();
}?catch?(FileNotFoundException?e)?{
e.printStackTrace();
System.out.println("File?not?found");
}?catch?(IOException?e)?{
e.printStackTrace();
System.out.println("Read?file?error");
}?finally?{
try?{
if?(br?!=?null)
br.close();
}?catch?(IOException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
return?"";
}
/**
?*?@說明?把一個文件轉(zhuǎn)化為字節(jié)
?*?@param?file
?*?@return?byte[]
?*?@throws?Exception
?*/
public?static?byte[]?getByteFromFile(File?file)?throws?Exception?{
byte[]?bytes?=?null;
if?(file?!=?null)?{
InputStream?is?=?new?FileInputStream(file);
int?length?=?(int)?file.length();
if?(length??Integer.MAX_VALUE)?//?當(dāng)文件的長度超過了int的最大值
{
System.out.println("this?file?is?max?");
return?null;
}
bytes?=?new?byte[length];
int?offset?=?0;
int?numRead?=?0;
while?(offset??bytes.length
?(numRead?=?is.read(bytes,?offset,?bytes.length?-?offset))?=?0)?{
offset?+=?numRead;
}
//?如果得到的字節(jié)長度和file實(shí)際的長度不一致就可能出錯了
if?(offset??bytes.length)?{
System.out.println("file?length?is?error");
return?null;
}
is.close();
}
return?bytes;
}
/**
?*?@說明?將指定文本內(nèi)容寫入到指定文件中(原文件將被覆蓋!)
?*?@param?content要寫入的內(nèi)容
?*?@param?file寫到的文件
?*/
public?static?void?writeContentIntoFile(String?content,?File?file)?{
try?{
if?(file.exists())?{
file.delete();
}
file.createNewFile();
FileWriter?fw?=?new?FileWriter(file,?true);
BufferedWriter?bw?=?new?BufferedWriter(fw);
bw.write(content);
bw.close();
fw.close();
}?catch?(IOException?e)?{
System.out.println("Write?file?error");
e.printStackTrace();
}
}
/**
?*?@param?file
?*?@param?encode
?*?@return
?*?@throws?Exception
?*?????????????T:2012-03-01?11:12:51?A:王建明?X:問題ID——?R:備注——讀取文件時設(shè)置txt文件的編碼方式
?*/
public?static?String?readFileContent(File?file,?String?encode)
throws?Exception?{
StringBuilder?sb?=?new?StringBuilder();
if?(file.isFile()??file.exists())?{
InputStreamReader?insReader?=?new?InputStreamReader(
new?FileInputStream(file),?encode);
BufferedReader?bufReader?=?new?BufferedReader(insReader);
String?line?=?new?String();
while?((line?=?bufReader.readLine())?!=?null)?{
//?System.out.println(line);
sb.append(line?+?"\n");
}
bufReader.close();
insReader.close();
}
return?sb.toString();
}
/**
?*?@param?file
?*?@return?T:2012-03-01?11:12:25?A:王建明?X:問題ID——?R:備注——獲取txt文件的編碼格式
?*/
public?static?String?getTxtEncode(File?file)?{
String?code?=?"";
try?{
InputStream?inputStream?=?new?FileInputStream(file);
byte[]?head?=?new?byte[3];
inputStream.read(head);
code?=?"gb2312";
if?(head[0]?==?-1??head[1]?==?-2)
code?=?"UTF-16";
if?(head[0]?==?-2??head[1]?==?-1)
code?=?"Unicode";
if?((head[0]?==?-17??head[1]?==?-69??head[2]?==?-65))
code?=?"UTF-8";
}?catch?(FileNotFoundException?e)?{
e.printStackTrace();
}?catch?(IOException?e)?{
e.printStackTrace();
}
return?code;
}
/**
?*?@說明?獲取文件后綴名
?*?@param?file
?*?@return
?*/
public?static?String?getFileExtension(File?file)?{
if?(file?!=?null??file.isFile())?{
String?filename?=?file.getName();
int?i?=?filename.lastIndexOf(".");
if?(i??0??i??filename.length()?-?1)?{
return?filename.substring(i?+?1).toLowerCase();
}
}
return?"";
}
/**
?*?@說明?刪除文件或文件夾
?*?@param?file
?*?@作者?王建明
?*?@創(chuàng)建日期?2012-5-26
?*?@創(chuàng)建時間?上午09:36:58
?*?@描述?——
?*/
public?static?void?deleteFile(File?file)?{
if?(file.exists())?{?//?判斷文件是否存在
if?(file.isFile())?{?//?判斷是否是文件
file.delete();?//?delete()方法?你應(yīng)該知道?是刪除的意思;
}?else?if?(file.isDirectory())?{?//?否則如果它是一個目錄
File?files[]?=?file.listFiles();?//?聲明目錄下所有的文件?files[];
for?(int?i?=?0;?i??files.length;?i++)?{?//?遍歷目錄下所有的文件
deleteFile(files[i]);?//?把每個文件?用這個方法進(jìn)行迭代
}
}
file.delete();
}?else?{
System.out.println("所刪除的文件不存在!"?+?'\n');
}
}
/**
?*?@說明?創(chuàng)建文件夾,如果不存在的話
?*?@param?dirPath
?*?@作者?王建明
?*?@創(chuàng)建日期?2012-5-26
?*?@創(chuàng)建時間?上午09:49:12
?*?@描述?——
?*/
public?static?void?createMirs(String?dirPath)?{
File?dirPathFile?=?new?File(dirPath);
if?(!dirPathFile.exists())
dirPathFile.mkdirs();
}
}
public static void main(String[] args) throws Exception{
File file=new File("D:\\output.txt");
BufferedReader reader=new BufferedReader(new FileReader(file));
String r=null;
int one=0,two=0,three=0;
String [] temp=null;
while((r=reader.readLine())!=null)
{
if(r.contains("one"))
{
temp=r.split(":", r.length());
if(temp!=null)
{
if(!" ".equals(temp[1]))
{
one+=Integer.valueOf(temp[1]);
}
else{
one+=0;
}
}
}
else if(r.contains("two"))
{
temp=r.split(":", r.length());
if(temp!=null)
{
if(!" ".equals(temp[1]))
{
two+=Integer.valueOf(temp[1]);
}
else{
two+=0;
}
}
}
else if(r.contains("three"))
{
temp=r.split(":", r.length());
if(temp!=null)
{
if(!" ".equals(temp[1]))
{
three+=Integer.valueOf(temp[1]);
}
else{
three+=0;
}
}
}
}
System.out.println("One="+one+" ;Two="+two+" ;Three="+three);
}
自己測試一下:這是我的輸出結(jié)果
Console:
One=190 ;Two=0 ;Three=410
二者的區(qū)別體現(xiàn)在:
首先,它們是兩個公司開發(fā)的不同的兩個產(chǎn)品,Java是SUN公司推出的新一代面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,特別適合于Internet應(yīng)用程序開發(fā);而JavaScript是Netscape公司的產(chǎn)品,其目的是為了擴(kuò)展Netscape Navigator功能,而開發(fā)的一種可以嵌入Web頁面中的基于對象和事件驅(qū)動的解釋性語言。
其次,JavaScript是基于對象的,而Java是面向?qū)ο蟮?,即Java是一種真正的面向?qū)ο蟮恼Z言,即使是開發(fā)簡單的程序,必須設(shè)計(jì)對象。JavaScript是種腳本語言,它可以用來制作與網(wǎng)絡(luò)無關(guān)的,與用戶交互作用的復(fù)雜軟件。它是一種基于對象和事件驅(qū)動的編程語言。因而它本身提供了非常豐富的內(nèi)部對象供設(shè)計(jì)人員使用。
第三,兩種語言在其瀏覽器中所執(zhí)行的方式不一樣。Java的源代碼在傳遞到客戶端執(zhí)行之前,必須經(jīng)過編譯,因而客戶端上必須具有相應(yīng)平臺上的仿真器或解釋器,它可以通過編譯器或解釋器實(shí)現(xiàn)獨(dú)立于某個特定的平臺編譯代碼的束縛。JavaScript是一種解釋性編程語言,其源代碼在發(fā)往客戶端執(zhí)行之前不需經(jīng)過編譯,而是將文本格式的字符代碼發(fā)送給客戶,由瀏覽器解釋執(zhí)行。
第四,兩種語言所采取的變量是不一樣的。Java采用強(qiáng)類型變量檢查,即所有變量在編譯之前必須作聲明。JavaScript中變量聲明,采用其弱類型。即變量在使用前不需作聲明,而是解釋器在運(yùn)行時檢查其數(shù)據(jù)類型。
第五,代碼格式不一樣。Java是一種與HTML無關(guān)的格式,必須通過像HTML中引用外媒體那么進(jìn)行裝載,其代碼以字節(jié)代碼的形式保存在獨(dú)立的文檔中。JavaScript的代碼是一種文本字符格式,可以直接嵌入HTML文檔中,并且可動態(tài)裝載。編寫HTML文檔就像編輯文本文件一樣方便。
第六,嵌入方式不一樣。在HTML文檔中,兩種編程語言的標(biāo)識不同,JavaScript使用 script.../script 來標(biāo)識,而Java使用applet ... /applet來標(biāo)識。
第七,靜態(tài)綁定和動態(tài)綁定。Java采用靜態(tài)聯(lián)編,即Java的對象引用必須在編譯時的進(jìn)行,以使編譯器能夠?qū)崿F(xiàn)強(qiáng)類型檢查。
html
body
form?action="/example/html/form_action.asp"?method="get"
pFirst?name:?input?type="text"?name="fname"?//p
pLast?name:?input?type="file"?name="lname"?//p
input?type="submit"?value="Submit"?/
/form
p請單擊確認(rèn)按鈕,輸入會發(fā)送到服務(wù)器上名為?"form_action.asp"?的頁面。/p
/body
/html
請參考上面的代碼
上面是文本 - string
下面是文件 - file