首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请大家帮看看,怎么读一个文件,并且备份成两份

2012-01-28 
请大家帮看看,如何读一个文件,并且备份成两份!c:/a.gif文件,将a.gif备份成u.gif和b.gif(文件必须读一回)请

请大家帮看看,如何读一个文件,并且备份成两份!
c:/a.gif文件,将a.gif备份成u.gif和b.gif(文件必须读一回)
请问能否使用BufferedInputStream来反复读写内存?

import   java.io.BufferedInputStream;
import   java.io.FileInputStream;
import   java.io.FileOutputStream;
import   java.io.IOException;
import   java.io.OutputStream;

public   class   Test   {

public   static   void   main(String[]   args)   throws   IOException   {

FileInputStream   fis   =   new   FileInputStream( "c:/a.gif ");
BufferedInputStream   snap2bis   =   new   BufferedInputStream(fis);
BufferedInputStream   snap2bis2   =   new   BufferedInputStream(fis);

System.out.println(snap2bis.available());
System.out.println(snap2bis.available());

System.out.println(snap2bis.available());
snap2bis.mark(0);

writefile(snap2bis,   "c:/u.gif ");
System.out.println(snap2bis.available());
snap2bis.reset();
writefile(snap2bis2,   "c:/b.gif ");
System.out.println(snap2bis.available());

snap2bis.close();

}

private   static   void   writefile(BufferedInputStream   bis,   String   filepath)
throws   IOException   {
OutputStream   os   =   new   FileOutputStream(filepath);
int   bytesRead   =   0;
byte[]   buffer   =   new   byte[8192];
while   ((bytesRead   =   bis.read(buffer,   0,   8192))   !=   -1)   {
os.write(buffer,   0,   bytesRead);
}
os.close();
}


}


[解决办法]
我试着写了一下
package aaaa;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.File;

public class shiyan {
public static void main(String[] args) {
try{
File wenjian=new File(args[0]);
File shuchu1=new File(args[1]);
File shuchu2=new File(args[2]);

FileInputStream duqu=new FileInputStream(wenjian);
BufferedInputStream duqua=new BufferedInputStream(duqu);

FileOutputStream xieru1=new FileOutputStream(shuchu1);
FileOutputStream xieru2=new FileOutputStream(shuchu2);

BufferedOutputStream xierua1=new BufferedOutputStream(xieru1);
BufferedOutputStream xierua2=new BufferedOutputStream(xieru2);

byte[] zijie=new byte[1024];

while(duqua.read(zijie)!=-1)
{
xierua1.write(zijie);
xierua2.write(zijie);
}

xierua1.flush();
xierua2.flush();
xierua1.close();
xierua2.close();

duqua.close();
duqu.close();

if (shuchu1.exists() && shuchu1.length()> 0)
System.out.println(args[1]+ "输出成功! ");
else
System.out.println(args[1]+ "输出失败! ");

if (shuchu2.exists() && shuchu2.length()> 0)
System.out.println(args[2]+ "输出成功! ");
else
System.out.println(args[2]+ "输出失败! ");



}catch(IOException a)
{
System.out.println( "异常! ");
}
}
}
不知道是不是这个意思
[解决办法]
import java.io.*;

public class CopyFiles {

/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException
{
// TODO Auto-generated method stub
File f1=new File( "e:\\a.gif ");
File f2=new File( "e:\\b.gif ");
File f3=new File( "e:\\c.gif ");
FileInputStream fis=new FileInputStream(f1);
BufferedInputStream bis=new BufferedInputStream(fis);

FileOutputStream fos2=new FileOutputStream(f2);
BufferedOutputStream bos2=new BufferedOutputStream(fos2);

FileOutputStream fos3=new FileOutputStream(f3);
BufferedOutputStream bos3=new BufferedOutputStream(fos3);
byte[] b1=new byte[100];
int read=0;
while((read=bis.read(b1))!=-1)
{
bos2.write(b1,0,read);
bos3.write(b1,0,read);
}

bis.close();
bos2.close();
bos3.close();
}

}

不知道是不是这个意思

热点排行