zoukankan      html  css  js  c++  java
  • 一个简单的Java文件工具类

      1 package com.xyworkroom.ntko.util;
      2 
      3 import java.io.File;
      4 import java.io.FileInputStream;
      5 import java.io.FileOutputStream;
      6 import java.io.IOException;
      7 import java.io.InputStream;
      8 import java.io.OutputStream;
      9 
     10 import javax.servlet.http.HttpServletResponse;
     11 
     12 /**
     13  * 文件处理工具类
     14  * 
     15  * @author xmq
     16  */
     17 public class FileUtil {
     18     
     19     /**
     20      * 下载文件
     21      * @param response
     22      * @param filePat 包括文件名如:c:/a.txt
     23      * @param fileName 文件名如:a.txt
     24      */
     25     public static void downFile(HttpServletResponse response,String filePath,String fileName){
     26         try {
     27             response.setCharacterEncoding("gkb");
     28             response.setContentType("text/plain");
     29             response.setHeader("Location",fileName);
     30             response.setHeader("Content-Disposition", "attachment; filename=" + new String(fileName.getBytes("gb2312"),"ISO8859-1"));
     31             FileInputStream  fis=new FileInputStream(filePath);
     32             OutputStream  os=response.getOutputStream();
     33             byte[] buf=new byte[1024];
     34             int c=0;
     35             while((c=fis.read(buf))!=-1){
     36                 os.write(buf, 0, c);
     37             }
     38             os.flush();
     39             os.close();
     40             if(fis!=null){
     41                 fis.close();
     42             }
     43         } catch (Exception e) {
     44             // TODO Auto-generated catch block
     45             e.printStackTrace();
     46         }
     47     }
     48     /**
     49      * 检查文件是否存在,存在返回true
     50      * @param destFileName
     51      * @return
     52      */
     53     public static boolean checkFileIsExists(String destFileName){
     54         File file = new File(destFileName);
     55         if (file.exists()) {
     56             return true;
     57         }else{
     58             return false;
     59         }
     60     }
     61     /**
     62      * 复制文件
     63      * @param source
     64      * @param dest
     65      * @throws IOException
     66      */
     67     public static void copyFile(File source, File dest){  
     68           InputStream input = null;  
     69           OutputStream output = null;  
     70           try {
     71               input = new FileInputStream(source);
     72               output = new FileOutputStream(dest);    
     73               byte[] buf = new byte[1024];    
     74               int bytesRead;    
     75               while ((bytesRead = input.read(buf))>-1) {
     76                 output.write(buf, 0, bytesRead);
     77               }
     78               output.close();
     79               input.close();
     80           }catch(Exception e){
     81               e.printStackTrace();
     82           }
     83     }
     84     
     85     /**
     86      * 把输入流保存到指定文件
     87      * @param source
     88      * @param dest
     89      * @throws IOException
     90      */
     91     public static void saveFile(InputStream source, File dest){  
     92           InputStream input = null;  
     93           OutputStream output = null;  
     94           try {
     95               input =source;
     96               output = new FileOutputStream(dest);    
     97               byte[] buf = new byte[1024];    
     98               int bytesRead;    
     99               while ((bytesRead = input.read(buf))>-1) {
    100                 output.write(buf, 0, bytesRead);
    101               }
    102               output.close();
    103               input.close();
    104           }catch(Exception e){
    105               e.printStackTrace();
    106           }
    107     }
    108     /**
    109      * 创建文件
    110      */
    111     public static boolean createFile(String destFileName) {
    112         File file = new File(destFileName);
    113         if (file.exists()) {
    114             return false;
    115         }
    116         if (destFileName.endsWith(File.separator)) {
    117             return false;
    118         }
    119         if (!file.getParentFile().exists()) {
    120             if (!file.getParentFile().mkdirs()) {
    121                 return false;
    122             }
    123         }
    124         try {
    125             if (file.createNewFile()) {
    126                 return true;
    127             } else {
    128                 return false;
    129             }
    130         } catch (IOException e) {
    131             e.printStackTrace();
    132             return false;
    133         }
    134     }
    135 
    136     /**
    137      * 创建目录
    138      */
    139     public static boolean createDir(String destDirName) {
    140         File dir = new File(destDirName);
    141         if (dir.exists()) {
    142             return false;
    143         }
    144         if (!destDirName.endsWith(File.separator))
    145             destDirName = destDirName + File.separator;
    146         if (dir.mkdirs()) {
    147             return true;
    148         } else {
    149             return false;
    150         }
    151     }
    152 
    153     /**
    154      * 根据路径删除指定的目录或文件,无论存在与否
    155      */
    156     public static boolean DeleteFolder(String sPath) {
    157         boolean flag = false;
    158         File file = new File(sPath);
    159         if (!file.exists()) {
    160             return flag;
    161         } else {
    162             if (file.isFile()) {
    163                 return deleteFile(sPath);
    164             } else {
    165                 return deleteDirectory(sPath);
    166             }
    167         }
    168     }
    169 
    170     /**
    171      * 删除单个文件
    172      */
    173     public static boolean deleteFile(String sPath) {
    174         boolean flag = false;
    175         File file = new File(sPath);
    176         if (file.isFile() && file.exists()) {
    177             file.delete();
    178             flag = true;
    179         }
    180         return flag;
    181     }
    182 
    183     /**
    184      * 删除目录(文件夹)以及目录下的文件
    185      */
    186     public static boolean deleteDirectory(String sPath) {
    187         if (!sPath.endsWith(File.separator)) {
    188             sPath = sPath + File.separator;
    189         }
    190         File dirFile = new File(sPath);
    191         if (!dirFile.exists() || !dirFile.isDirectory()) {
    192             return false;
    193         }
    194         boolean flag = true;
    195         File[] files = dirFile.listFiles();
    196         for (int i = 0; i < files.length; i++) {
    197             if (files[i].isFile()) {
    198                 flag = deleteFile(files[i].getAbsolutePath());
    199                 if (!flag)
    200                     break;
    201             } else {
    202                 flag = deleteDirectory(files[i].getAbsolutePath());
    203                 if (!flag)
    204                     break;
    205             }
    206         }
    207         if (!flag)
    208             return false;
    209         if (dirFile.delete()) {
    210             return true;
    211         } else {
    212             return false;
    213         }
    214     }
    215     
    216 
    217     /*public static void main(String[] args) {
    218         String dir = "D:\sgtsc_files\393\02\";
    219         createDir(dir);
    220         String filename = "test1.txt";
    221         String subdir = "subdir";
    222         createDir(dir + subdir);
    223         createFile(dir + filename);
    224         createFile(dir + subdir + filename);
    225         DeleteFolder(dir);
    226     }*/
    227 
    228 }
  • 相关阅读:
    Shared Memory in Windows NT
    Layered Memory Management in Win32
    软件项目管理的75条建议
    Load pdbs when you need it
    Stray pointer 野指针
    About the Rebase and Bind operation in the production of software
    About "Serious Error: No RTTI Data"
    Realizing 4 GB of Address Space[MSDN]
    [bbk4397] 第1集 第一章 AMS介绍
    [bbk3204] 第67集 Chapter 17Monitoring and Detecting Lock Contention(00)
  • 原文地址:https://www.cnblogs.com/xmqa/p/6295442.html
Copyright © 2011-2022 走看看