一个简单的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 }
时间: 2024-10-21 15:47:17

一个简单的Java文件工具类的相关文章

一个简单的Java模板工具类(二)—简单表达式解析实现

以前写过一个, 用正则比较不高效, 所以用表达式解析方式又实现了一个, 练手. 以前的: http://my.oschina.net/haogrgr/blog/222349 现在的: import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; /**  * 非常非常简单的模板实现  *   * @author desheng.tu  * @date 2015年

Java的的简单线程复制文件工具类FileUtil2.0

相对于版本1.0,多了很多方法, 比如,获取文件的后缀名,或修改后缀名和一些文件的简单操作. 文件复制到文件,文件复制到路径,路径下文件复制到新路径下, 代码如下,请享用: 1 package cn.util; 2 3 import java.io.*; 4 5 /** 6 * 线程的方式实现文件的复制. 7 文件的复制需要四个参数:1,路径或文件),2路径或文件,3,是否覆盖,4,是否追加, 8 多文件复制还需要加时间参数(毫秒). 9 * 以及File类实例的简单创建, 10 * 11 *

java中IO写文件工具类

下面是一些根据常用java类进行组装的对文件进行操作的类,平时,我更喜欢使用Jodd.io中提供的一些对文件的操作类,里面的方法写的简单易懂. 其中jodd中提供的JavaUtil类中提供的方法足够我们使用,里面的方法写的非常简练,例如append,read等方法,封装更好,更符合面向对象, 这里面我写的一些方法可多都是模仿jodd,从里面进行抽取出来的. /** * 获取路径文件夹下的所有文件 * @param path * @return */ public static File[] ge

自动扫描FTP文件工具类 ScanFtp.java

package com.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /** * 自动扫描FTP文件工具类 * 需要定时执行 */ public class S

java http工具类和HttpUrlConnection上传文件分析

利用java中的HttpUrlConnection上传文件,我们其实只要知道Http协议上传文件的标准格式.那么就可以用任何一门语言来模拟浏览器上传文件.下面有几篇文章从http协议入手介绍了java中上传文件. Java使用HttpURLConnection上传文件 使用HttpUrlConnection进行post请求上传文件 封装HttpClient4.3.x包括文件上传 使用 HttpClient 4 进行文件上传 httpclient4教程 下面分享一个自己封装的http工具类(暂不直

一个简单的Java 连接SQL Server数据库连接驱动类

import java.sql.*; /** * SQL Server数据库连接类 * @author Administrator * */ public class Sqlsdc { static int a = 0; public Connection sqlsdc(String user, String pwd, String dn) { String url = "jdbc:sqlserver://localhost:1433;databaseName="+dn; final

读取Config文件工具类 PropertiesConfig.java

package com.util; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.InputStream; import java.util.Properties; /** * 读取Config文件工具类 * @version 1.0 * @since JDK 1.6 */ public class PropertiesConfig { /** * 获取整个配置文件中的属性 *

java生成excel文件工具类实例

import java.io.File; import java.io.IOException; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; import jxl.write.biff.RowsExceededException; import org.

java常用工具类(三)—— 文件读取的操作类

定义常用的文件类型 public class FileType { /** * 文件头类型 */ public static final String XML_FILE = "text/xml;charset=UTF-8"; public static final String PDF_FILE = "application/pdf"; public static final String PDG_FILE = "application/x-png&quo