将字节流直接写入word
除了txt这种简单的文件(即可用字节流,也可用字符流--不需要专门的这种文件的java类),其他类型的文件word,execl,zip等都可以直接写入字节流(写入空的类型文件中,先要建立一个这样的空类型文件),拿出字节流来(用这种结构的
这种文件java类去获取内部流),由于处txt这种类型的文件外,其他复杂类型的文件都有内部结构描述,不可用字符流,只能用字节流一次性写入
new file 只能new出文件夹,要形成特殊类型的文件 还需要将此文件夹转成流,最后用对应文件类型的java工具类转化成这种类型的文件
XWPFDocument document = new XWPFDocument();
// Write the Document in file system
FileOutputStream out1 = new FileOutputStream(new File("C:\\Users\\yy\\hb1009\\simple1.doc"));
document.write(out1);
out1.close();
System.out.println("createdocument.docx written successully");
当然在java中通过对应工具类直接遍历操作文件对象此种类型的文件
1,字符串可以转化成流,文件也可转化成流
2,对于流无论read,write操作的对象都是左边的对象
3,对应文件类型的java工具类转化成这种类型的文件
4,一般的流 output是最终拼接,用来循环的btye[] 是缓存载体,socket这种有业务特性的--- 缓冲区就是起到临时存储拼接的作用 io包=包头(包的长度)+包体 ,先读取包头,然后在缓存区拼接相应长度的内容,之后读出---处理粘包
5,字节和输入/出流的关系是可以取出,写入文件和输入/出流的关系是文件进入输入/出就变成了字节,从流中可以取出
6,普通的对象通过相应的步骤可以一步一步转化成字符流,字节流
out 时流的最终写入点,input时流的来源
相应结构的reader(扫描器)从input(需要被复印的原件)中读,相应的writer(打印机)写入out(放好的白纸)最终需要关闭扫描器,打印机
7,wr.flush();一般打印机会在关闭之前flush,就是马上提交打印内容,否则容易出现打印完成,没有东西出来
8,不同类型的文件需要用相应类型的打印机(写类),传输的时候只要传入出来的纸(out),out经过相应类型的打印机自然有对应类型的结构
/**
* 助贷放款或结清证明生成
* @param request
* @param errors
* @return
* @throws Exception
*/
@RequestMapping("tYZDLnOrClrCtfyGen")
public JSONObject TYZDLnOrClrCtfyGen(@Valid @RequestBody ApiRequest request,Errors errors) throws Exception {
LOGGER.info("助贷放款或结清证明生成,参数:[{}]",JSONObject.toJSONString(request));
JSONObject jsonObject=new JSONObject();
String dataStr = String.valueOf(request.getData());
JSONObject dataObject = JSONObject.parseObject(dataStr);
request.setData(dataObject);
JSONObject jsonObjRes= facadeSend(request,errors,TradeEnum.S0025.getTcode());
SftpUtils sftp = null;
try {
String jsonObjResData= jsonObjRes.getString("data");
//String jsonObjResData= jsonObjRes.getString("rspData");
JSONObject jsonRes=null;
String pathImg="";
String msg="";
if(jsonObjResData!=null ){
jsonRes =(JSONObject)JSONObject.parse(jsonObjResData) ;
JSONObject jsonResFile =(JSONObject)JSONObject.parse(jsonRes.getString("rspData"));
if(CodeEnum.CODE_000000.getCode().equals(jsonRes.getString("returnCode"))){
pathImg =jsonResFile.get("FILE_PATH")+"";
pathImg =pathImg+"/"+jsonResFile.get("FILE_NAME")+"";
}
msg=jsonRes.getString("returnMsg");
}
pathImg="/file/1005/004_20181105163758_EDHT20180815003420002.doc";
if(!"".equals(pathImg)){
sftp =new SftpUtils(jqulr, jqport, jquserName, jqpassWord);
String imgData="";
//=sftp.readFileNotmove(pathImg);
byte[] byteArray = sftp.getFileToByte(pathImg);
imgData = new String(byteArray, "UTF-8");
jsonObject.put("code", CodeEnum.CODE_0000.getCode());
jsonObject.put("msg", CodeEnum.CODE_0000.getMsg());
jsonObject.put("data",byteArray);-----------------------------------------------直接返回字节
}else{
jsonObject.put("code", CodeEnum.CODE_999999.getCode());
jsonObject.put("msg", msg);
}
} catch (Exception e) {
jsonObject.put("code", CodeEnum.CODE_999999.getCode());
jsonObject.put("msg", CodeEnum.CODE_999999.getMsg());
e.printStackTrace();
}
return jsonObject;
}
@Test
public void zipTest1 () throws IOException {
File file = new File("C:\\Users\\yy\\tst\\20271019.zip");
Map<String, Object> reqMap = new HashMap<String, Object>();
reqMap.put("chnCode", "HOUBANK");
reqMap.put("bankCode", "SANXIANG");
reqMap.put("data", null);
String s1 = HttpClientUtil.httpJsonPost("http://localhost:9999/HOUBANKAPI/tYZDLnOrClrCtfyGen", JSON.toJSONString(reqMap));
BASE64Decoder decoder = new BASE64Decoder();
JSONObject jsonObject = JSON.parseObject(s1);
byte[] myJson= new String(decoder.decodeBuffer(jsonObject.get("data").toString()), "UTF-8").getBytes();
byte2file("",myJson);
}
public void byte2file(String path,byte[] data) {
try {
XWPFDocument document = new XWPFDocument();
// Write the Document in file system
FileOutputStream out1 = new FileOutputStream(new File("C:\\Users\\yy\\hb1009\\simple1.doc"));
document.write(out1);
out1.close();
System.out.println("createdocument.docx written successully");
File tempDoc = new File("C:\\Users\\yy\\hb1009", "simple1.doc");
BufferedOutputStream out = null;
XWPFDocument temp = null;
temp = new XWPFDocument(new BufferedInputStream(new FileInputStream(tempDoc)));
out = new BufferedOutputStream(new FileOutputStream(tempDoc));
out.write(data);
} catch (Exception e) {
e.printStackTrace();
}
}
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
相关推荐
首先,要使用iText生成Word文档,你需要在项目中引入iText的库。iText提供了一个名为iText-for-Office的模块,专门用于处理Microsoft Office格式。通常,你需要下载`itext7-for-office.jar`和`itext7-core.jar`这两...
然而,根据你的需求,我们不仅要用iText生成Word文档,还要在文档中嵌入图片,这需要对iText的功能有深入的理解,并且可能需要结合其他库如Apache POI。以下是关于这个主题的详细知识: 1. **iText简介**: iText...
总结一下,生成Word报告的过程主要包括以下步骤: 1. 加载Word模板:创建XWPFDocument对象,传入模板文件的输入流。 2. 替换文本:查找模板中的占位符,使用XWPFParagraph和XWPFRun替换文本。 3. 处理表格:查找或...
7. **生成下载响应**:完成内容插入后,将Word文档输出为字节流,设置HTTP响应头,触发浏览器下载。 在提供的`ExportWord.java`文件中,我们可以预期它包含了上述部分的实现代码。具体来说,它可能有以下几个方法:...
- 创建Word文档:使用FreeMarker的`Template`类和数据模型,生成Word文档的字节流。 - 写入文件:将生成的字节流写入`.docx`文件。 5. 博文链接中的示例: 博文链接中可能详细讲解了如何实现这个过程,包括创建...
Java生成Word文档是一种常见的需求,特别是在企业级应用中,例如报告生成、数据导出等。在Java中,我们可以使用各种库来实现这个功能,比如Apache POI,它是一个开源项目,提供了API来处理Microsoft Office格式的...
在Spring Boot应用中,我们可以利用Freemarker模板引擎来生成Word文档,并提供给用户下载。以下将详细讲解这个过程。 1. **Spring Boot基础** Spring Boot是Spring框架的一个简化版,它旨在简化Spring应用程序的...
在Java编程环境中,生成Word文档是一项常见的任务,尤其在企业级应用中,如报告生成、数据导出等。本示例将重点讲解如何利用Java将文本内容和图片写入Word文档,以实现这一功能。 首先,我们需要引入一个库来帮助...
当我们需要在Web应用中生成Word文档时,Servlet可以发挥重要作用。本篇将详细介绍如何使用Servlet生成Word文档,以及涉及的相关技术。 首先,要理解Servlet的基本原理。Servlet是Java EE(企业版)的一部分,它是一...
在.NET开发环境中,处理Microsoft Office文档,特别是Word文档时,我们常常会遇到需要对文档进行各种操作的需求,比如插入图片。DocX是一个轻量级、易于使用的库,它允许开发者在不依赖Microsoft Word的情况下,对...
在这个场景中,"java利用poi生成word"指的是使用Apache POI库来编程生成Word文档。Apache POI提供了一个API,允许开发者通过Java代码操作Word文档的各个部分,如文本、图片、表格等。 首先,让我们深入了解一下...
利用这个库,我们可以解析富文本编辑器生成的HTML,提取文本和样式,然后创建对应的Word文档结构。 以下是实现这个功能的基本步骤: 1. **HTML解析**:使用HTML解析库(如Jsoup)解析富文本编辑器生成的HTML,获取...
在Java开发中,有时我们需要将Word文档转换为PDF格式,以满足不同的应用场景或者跨平台兼容的需求。Apache POI是一个流行的库,主要用于处理Microsoft Office格式的文件,如Word(.doc/.docx)和Excel(.xls/.xlsx)...
这通常通过读取文档的字节流完成。在Python中,可以使用`open()`函数以'rb'模式打开文档,然后使用`read()`方法获取二进制数据。 4. **创建数据库表** 首先,我们需要在Access中创建一个新表,用于存储Word文档。...
标签“vue2字节流byte[]文件”提示我们这个话题可能与Vue2框架结合使用字节数组流的方式有关。Vue是一个流行的前端JavaScript框架,它允许开发者以组件化的方式构建用户界面。在Vue2中,可能会遇到需要处理二进制...
本教程将详细讲解如何使用Java来读写Microsoft Word文档,重点在于“Word by Word”式的操作,即逐字处理,以及如何通过Java生成Word文档。以下就是基于提供的“make-word-by-java.rar”压缩包文件中的知识点。 1. ...
如果你需要在Word文档中插入图片,可以使用XWPFDocument的insertImage方法,传入图像的字节数组和尺寸信息。 `jsp导出word.txt`可能是一个包含示例代码的文本文件,详细展示了如何在JSP中实现上述步骤。你可以查看...
这个项目对于那些希望在Java应用程序中自动化生成或编辑Word文档的人来说非常有价值,比如报告生成、模板填充等场景。通过掌握Apache POI,你可以实现对Word文档的完全控制,让Java与Office世界无缝对接。
它将数据结构如字符串、整数、列表和字典转换成字节流,方便在网络上传输。例如,字符串前缀会以数字表示其长度,后跟":",整数以"i"开始,以"e"结束,列表以"l"开始,"e"结束,字典以"d"开始,"e"结束。 2. **SHA1...