http://blog.sina.com.cn/s/blog_ae48aad6010177ns.html

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
public class Test {  
   public static void main(String[] args){  
       String filePath = "E:\\softoon\\workspace_softoon\\TestMobile\\src\\1.docx";  
       String outFilePath = "E:\\softoon\\workspace_softoon\\TestMobile\\src";  
       String outFileName = "2.docx";  

       getFile(getBytes(filePath),outFilePath,outFileName);  
   }  

   //获得指定文件的byte数组 
   public static byte[] getBytes(String filePath){  
       byte[] buffer = null;  
       try {  
           File file = new File(filePath);  
           FileInputStream fis = new FileInputStream(file);  
           ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);  
           byte[] b = new byte[1000];  
           int n;  
           while ((n = fis.read(b)) != -1) {  
               bos.write(b, 0, n);  
           }  
           fis.close();  
           bos.close();  
           buffer = bos.toByteArray();  
       } catch (FileNotFoundException e) {  
           e.printStackTrace();  
       } catch (IOException e) {  
           e.printStackTrace();  
       }  
       return buffer;  
   }  

   //根据byte数组,生成文件 
   public static void getFile(byte[] bfile, String filePath,String fileName) {  
       BufferedOutputStream bos = null;  
       FileOutputStream fos = null;  
       File file = null;  
       try {  
           File dir = new File(filePath);  
           if(!dir.exists()&&dir.isDirectory()){//判断文件目录是否存在  
               dir.mkdirs();  
           }  
           file = new File(filePath+"\\"+fileName);  
           fos = new FileOutputStream(file);  
           bos = new BufferedOutputStream(fos);  
           bos.write(bfile);  
       } catch (Exception e) {  
           e.printStackTrace();  
       } finally {  
           if (bos != null) {  
               try {  
                   bos.close();  
               } catch (IOException e1) {  
                  e1.printStackTrace();  
               }  
           }  
           if (fos != null) {  
               try {  
                   fos.close();  
               } catch (IOException e1) {  
                   e1.printStackTrace();  
               }  
           }  
       }  
   } 
}