//運行命令帶有兩個參數,分別爲源文件和目標文件的路徑
//功能:將源文件的內容寫入目標文件
import java.io.*;
public class binaryFileCopy {
/**
* @param args
*/
/*public static void main(String[] args) {
// TODO Auto-generated method stub
DataInputStream instr;
DataOutputStream outstr;
try
{
instr=new DataInputStream(new BufferedInputStream(new FileInputStream(args[0])));
outstr=new DataOutputStream(new BufferedOutputStream(new FileOutputStream(args[1])));
if(args.length!=2)
{System.out.println("請輸入正確文件路徑");
return;}
try{
int a;
while(true)
{a= instr.readUnsignedByte();
outstr.write(a);}
}
catch(EOFException eof)
{
instr.close();
outstr.close();
return;
}
}
catch(FileNotFoundException fnfe)
{
System.out.println("the File not Found");
}
catch(IOException e)//try
{
System.out.println("problem copying");
}//catch
}
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
DataInputStream instr;
DataOutputStream outstr;
File in=new File(args[0]);
File out=new File(args[1]);
if(args.length!=2)
{System.out.println("請輸入正確文件路徑");
return;}
if(in.exists())
in.delete();
else
try{
in.createNewFile();
}
catch (IOException e)
{System.out.println(e.getMessage());}
if(out.exists())
out.delete();
else
try{
out.createNewFile();
}
catch (IOException e)
{System.out.println(e.getMessage());}
try
{
instr=new DataInputStream(new BufferedInputStream(new FileInputStream(in)));
outstr=new DataOutputStream(new BufferedOutputStream(new FileOutputStream(out)));
try{
int a;
while(true)
{a= instr.readUnsignedByte();
outstr.write(a);}
}
catch(EOFException eof)
{
instr.close();
outstr.close();
return;
}
}
catch(IOException e)//try
{
System.out.println("problem copying");
}//catch
}
}
/*心得 FileOutPutStream是OutputStream的子類,可用作二進制數據寫入文件,構造函數可以是文件的路徑名或一個File類的對象DataOutputStream是OutputStream的子類,可連接到一個FileOutputStream上,中間套接BufferedOutputStream可增加輸出效率 DaInPutStream的readUnsignedByte()方法 用於返回此輸入流的下一個字節,將它解釋爲一個無符號的 8 位數字DataOutputStream的write()方法 將指定字節(參數 b 的八個低位)寫入基礎輸出流。如果沒有拋出異常,則計數器 written 增加 1。*/ |