package com.ibeetl.admin.core.file; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import com.ibeetl.admin.core.util.PlatformException; /** * 本地文件系统 * @author xiandafu * */ class LocalFileItem extends PersistFileItem{ String root = null; public LocalFileItem(String root) { this.root = root; } public OutputStream openOutpuStream() { File file = new File(root + File.separator + path); try { if(!file.exists()) { file.createNewFile(); } FileOutputStream fos = new FileOutputStream(file); return fos; } catch (IOException e) { throw new PlatformException("Open stream error "+path); } } @Override public void copy(OutputStream os) { File file = new File(root + File.separator + path); FileInputStream input = null; try { input = new FileInputStream(file); byte[] buf = new byte[1024]; int bytesRead; while ((bytesRead = input.read(buf)) > 0) { os.write(buf, 0, bytesRead); } }catch(Exception ex) { throw new PlatformException("下载文件失败"+ex); } finally { try { input.close(); os.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(path.startsWith("temp")) { this.delete(); } } @Override public boolean delete() { File file = new File(root + File.separator + path); return file.delete(); } }