目录

资源写入接口

概述

此接口中定义了对资源做写入或删除等操作时调用方法,可调用此接口完成客户化的资源保存和写入。

接口名

com.runqianapp.utils.IDataWriter 资源写入接口   

接口说明

基于用户需求,可通过此接口实现类完成对报表存在与否的判断,删除文件时进行判断处理,指定报表模版文件的输出流的输出方式和关闭输出流的方式。

当需要对文件进行添加,删除操作,定义保存方式,关闭对文件操作时候使用的资源的时候,相应的接口实现方法会被调用。

可用方法

fileExists

语法:public boolean fileExists(String name)

参数说明:

功能说明:根据传递的参数name,判断文件是否存在。

返回值:文件是否存在

getOutputStream

语法:public OutputStream getOutputStream(String path)

参数说明:

功能说明:获取指定路径的报表模板文件输出流,此方法中可完成报表模板的保存,如保存到指定目录,保存至数据库,上传至FTP等。

返回值:报表模版文件的输出流os

 

deleteFile

语法:public void deleteFile(String 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单独调用时应该用的是此接口实现类,待验证。