快捷搜索: 王者荣耀 脱发

Java把文件放入IBM_MQ队列的代码

一、概述

以下代码可以实现读取一个文件夹内的所有文件,然后将文件转为字节流、放入IBM_MQ队列中(发送方代码);

接收方获取到流后转为文件即可。

注意,以下代码的字节流由两部分组成,约定的字符串+文件,接收方也需要按格式接收;如果不需要这样写,就自行修改,只发送文件即可。

二、代码

1.需要的jar包

com.ibm.mq-9.1.0.3.jar
com.ibm.mq.jmqi-9.1.0.3.jar
com.ibm.mq.allclient-9.0.0.jar

2.配置类ConfigUtil.java

这个类里有些ibm_mq的配置相关,例如队列名称等,代码如下:

import java.util.HashMap;

/**
 * 配置类
 */

public class ConfigUtil {

    //mq服务器的ip
    private static final String IBM_MQ_host = "10.123.123.123";
    //queue
    private static final String IBM_MQ_Queue = "xxx.xxx.queue";
    //mq管理器的名字
    private static final String IBM_MQ_Manager = "xxx.xxx.manager";
    //channel
    private static final String IBM_MQ_channel = "xxx.xxx.CHANNEL";
    //port
    private static final String IBM_MQ_port = "1414";
    //ccsid
    private static final String IBM_MQ_ccsid = "1381";
    //待上传的文件夹路径
    private static final String FILE_PATH = "f:/pdf/";




    private static final HashMap<String,String> map;

    static {
        map = new HashMap();
        map.put("IBM_MQ_host",IBM_MQ_host);
        map.put("IBM_MQ_channel",IBM_MQ_channel);
        map.put("IBM_MQ_port",IBM_MQ_port);
        map.put("IBM_MQ_ccsid",IBM_MQ_ccsid);
        map.put("IBM_MQ_Queue",IBM_MQ_Queue);
        map.put("IBM_MQ_Manager",IBM_MQ_Manager);
        map.put("FILE_PATH",FILE_PATH);


    }

    private static final ConfigUtil cu = new ConfigUtil();

    public static ConfigUtil getInstance(){
        return cu;
    }
    public static HashMap<String,String> getConfigMap(){
        return map;
    }
}

3.工具类IBMMQUtil.java

这个类是发送mq的工具类,代码如下:

4.主类Main.java

这个类是程序入口类,里面有main方法,代码如下:

import java.io.File;

public class Main {

    /**
     * main方法,可以把文件转为字节流放入ibm_mq队列(任意文件都行,不是只pdf才行)
     */

    public static void main(String[] args) throws Exception {

        //调用把pdf放入ibm_mq队列的方法
        //这个是文件夹路径,会把文件夹里的所有文件都推送过去
        uploadPdf(ConfigUtil.getInstance().getConfigMap().get("FILE_PATH"));

    }


    public static void uploadPdf(String path){

        File file=new File(path);
        //找到文件夹下的所有文件的名字
        String[] names=file.list();
        System.out.println("开始执行pdf推送IBM_MQ,待推送文件夹为--"+path);
        boolean flag=false;
        int count=0;

        for(String name:names){
            System.out.println("文件名称为:"+name);
            String fwpath=path+name;//实际文件地址
            File File;
            try {
                File = new File(fwpath);
                //传入文件路径,mq队列名,mq管理器名,文件名
                flag = IBMMQUtil.upload(fwpath, ConfigUtil.getInstance().getConfigMap().get("IBM_MQ_Queue"),ConfigUtil.getInstance().getConfigMap().get("IBM_MQ_Manager"), name);
                if(flag==true){//根据调用方法是否成功怕段是否删除服务器上的文件
                    System.out.println("上传成功,返回true");
                    if (File.exists()) {
                        //File.delete();
                        //System.out.println("删除上传成功的文件");
                    }
                }
                count = count+1;
            } catch (Exception e) {
                System.out.println("文件上传出现异常!");
                e.printStackTrace();
            }
        }

        System.out.println("推送所有文件结束");

    }



}
经验分享 程序员 微信小程序 职场和发展