//运行命令带有两个参数,分别为源文件和目标文件的路径
//功能:将源文件的内容写入目标文件
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。*/ |