您的位置:首页 > 编程语言 > Java开发

几个文件操作的java方法

2008-03-27 09:16 573 查看
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

/**
* 创建Excel文件
* @param dataList(数据)
* @param path (路径名)
* @param fileName (文件名)
* @param sheetName (sheet名)
* @return (excel文件完整文件名)
*/
public static String creatExcel(List dataList, String path,
String fileName, String sheetName) {

String file = path + fileName + ".xls";

File dir = new File(FileTool.PATH_REAL_ROOT + path);
if (!dir.exists())
dir.mkdirs();

File excelFile = new File(FileTool.PATH_REAL_ROOT + file);// 要创建的excel文件
WritableWorkbook excel;
try {
excel = Workbook.createWorkbook(excelFile);
WritableSheet sheet = excel.createSheet(sheetName, 0);

for (int i = 0; i < dataList.size(); i++) {
ArrayList datas = (ArrayList) dataList.get(i);
for (int j = 0; j < datas.size(); j++) {
Label label2 = new Label(j, i, (String) datas.get(j));
sheet.addCell(label2);
}
}
// log.debug("开始写入");
excel.write();
// log.debug("写入完毕");
excel.close();
// log.debug("关闭");
excelFile = null;

} catch (IOException e) {
log.exception(e);
} catch (RowsExceededException e) {
log.exception(e);
} catch (WriteException e) {
log.exception(e);
}
return file;
}

/**
* 压缩文件
* @param inputFileName
* @param zipFileName
*/
public static void zip(String inputFileName, String zipFileName) {
try {
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(
FileTool.PATH_REAL_ROOT + zipFileName));
File f = new File(FileTool.PATH_REAL_ROOT + inputFileName);
String base = f.getName();

out.putNextEntry(new org.apache.tools.zip.ZipEntry(base));
FileInputStream in = new FileInputStream(f);

int b;
while ((b = in.read()) != -1) {
out.write(b);
}
in.close();

out.close();
} catch (IOException e) {
log.exception(e);
}

}

/**
* 下载文件
* @param file(文件)
* @param displayName(下载时显示的文件名)
* @param response
*/
public static void download(String file, String displayName,
HttpServletResponse response) {
try {
displayName = URLEncoder.encode(displayName, "UTF-8");
} catch (UnsupportedEncodingException e1) {
log.exception(e1);
}

response.setContentType("application/x-download");// 设置为下载application/x-download
response.addHeader("Content-Disposition", "attachment;filename="
+ displayName);

BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(new FileInputStream(
FileTool.PATH_REAL_ROOT + file));
bos = new BufferedOutputStream(response.getOutputStream());

byte[] buff = new byte[1024];
int bytesRead;

while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}

} catch (final IOException e) {
log.exception(e);
} finally {
if (bis != null)
try {
bis.close();
} catch (IOException e) {
log.exception(e);
}
bis = null;
if (bos != null)
try {
bos.close();
} catch (IOException e) {
log.exception(e);
}
bos = null;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: