对于MQ传输文件,我采取的思路是:
A.先定义一个序列化类(赞命名为fileBean),类的属性有fileName和fileContent 两个。
B.用输入流配合 BASE64Encoder 将文件格式化为 基于BASE64Encoder 的String编码 作为文件的内容。
C.将文件名和文件内容set到fileBean的fileContent属性中。
D.调用MQ将这个Object写到远程队列中去。
E.接收方接受到消息时用readObject()方法读出,强转成fileBean
F.从fileBean中取出文件名和文件内容,将文件内容用BASE64Decoder解码
G.用文件输出流将文件写到指定的位置,到此大功告成。
-------------------------废话少说,看代码-------------------------------
文件序列化类
- package com.test.mq;
- import java.io.Serializable;
- /**
- *
- * <p>
- * Title: FileBean.java
- * </p>
- * <p>
- * Description:
- * </p>
- * <p>
- * Copyright: Copyright (c) 2009
- * </p>
- * <p>
- * Company: shunde
- * </p>
- *
- * @author: listening
- * @create date Nov 8, 2009
- */
- public class FileBean implements Serializable {
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private String fileName = "";// 文件名
- private String fileContent = "";// 文件内容(BASE64Encoder编码之后的)
- public String getFileName() {
- return fileName;
- }
- public void setFileName(String fileName) {
- this.fileName = fileName;
- }
- public String getFileContent() {
- return fileContent;
- }
- public void setFileContent(String fileContent) {
- this.fileContent = fileContent;
- }
- }
package com.test.mq;
import java.io.Serializable;
/**
*
* <p>
* Title: FileBean.java
* </p>
* <p>
* Description:
* </p>
* <p>
* Copyright: Copyright (c) 2009
* </p>
* <p>
* Company: shunde
* </p>
*
* @author: listening
* @create date Nov 8, 2009
*/
public class FileBean implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private String fileName = "";// 文件名
private String fileContent = "";// 文件内容(BASE64Encoder编码之后的)
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getFileContent() {
return fileContent;
}
public void setFileContent(String fileContent) {
this.fileContent = fileContent;
}
}
文件发送和接受类
- package com.test.mq;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.InputStream;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import sun.misc.BASE64Decoder;
- import sun.misc.BASE64Encoder;
- import com.ibm.mq.MQC;
- import com.ibm.mq.MQEnvironment;
- import com.ibm.mq.MQException;
- imp