资源写入接口
概述
此接口中定义了对资源做写入或删除等操作时调用方法,可调用此接口完成客户化的资源保存和写入。
接口名
com.runqianapp.utils.IDataWriter 资源写入接口
接口说明
基于用户需求,可通过此接口实现类完成对报表存在与否的判断,删除文件时进行判断处理,指定报表模版文件的输出流的输出方式和关闭输出流的方式。
当需要对文件进行添加,删除操作,定义保存方式,关闭对文件操作时候使用的资源的时候,相应的接口实现方法会被调用。
可用方法
fileExists
语法:public boolean fileExists(String name)
参数说明:
- name-文件的路径名称
功能说明:根据传递的参数name,判断文件是否存在。
返回值:文件是否存在
getOutputStream
语法:public OutputStream getOutputStream(String path)
参数说明:
-
path-页面入口参数reportPath指定报表路径
功能说明:获取指定路径的报表模板文件输出流,此方法中可完成报表模板的保存,如保存到指定目录,保存至数据库,上传至FTP等。
返回值:报表模版文件的输出流os
deleteFile
语法:public void deleteFile(String filePath)
参数说明:
- filePath-报表文件路径("/目录/文件")
功能说明:删除指定路径下的文件
close
语法: public void close()
功能说明:当系统不再使用文件时,会显式调用此方法。可在此方法中进行资源释放等工作。
使用说明
1.实现接口类IDataWriter后将编译后的类文件存放至WEB-INF/classes/【包路径】下。例如:WEB-INF/classes/com/runqianapp/utils/IDataWriterTest.class。
2.配置实现类:将实现类配置在WEB-INF下的GlobalServer.xml的<IOReport>标签中。
配置如下:
<IOReport>
<outputProvider>com.runqianapp.utils.IDataWriterTest</outputProvider>
</IOReport>
示例解析
public class IDataWriterTest implements IDataWriter
{
//判断文件是否存在
public boolean fileExists(String name) {
boolean exist = false;
if ((name != null) && (!"".equals(name))) {
String filepath = PathUtils.getAppPhyPath()+name;
File file = new File(filepath);
if (file.exists()) {
exist = true;
System.out.print("报表"+name+"已经存在");
}
}
return exist;
}
//获取指定路径的报表模板文件输出流,此方法中可完成报表模板的保存,如保存到指定目录,保存至数据库,上传至FTP等。
public OutputStream getOutputStream(String path) {
OutputStream os = null;
try {
path =PathUtils.getAppPhyPath()+path;
os = new FileOutputStream(path);
} catch (IOException ioe) {
ioe.printStackTrace();
}
return os;
}
//删除指定路径下的文件
public void deleteFile(String filePath)
{
filePath = PathUtils.getAppPhyPath()+filePath;
File file = new File(filePath);
try {
if (!file.exists()) {
throw new FileNotFoundException("报表不存在!");
}
file.delete();
System.out.print("报表已经成功删除");
} catch (FileNotFoundException fnfe) {
fnfe.printStackTrace();
}
}
//当系统不再使用文件时,会显式调用此方法。可在此方法中进行资源释放等工作。
public void close(){}
}
参考示例
//建议提供示例:保存文件至D盘指定目录,数据库中存入资源
//目前已有示例: \资源读写客户化\资源写入接口\IDataWriterTest.java
自定义数据分析和DBD单独调用时应该用的是此接口实现类,待验证。