一个简单的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 }