`
y806839048
  • 浏览: 1121748 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

字节流生成word文档

阅读更多

 

 

将字节流直接写入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>

 

 

 

 

 

 

分享到:
评论

相关推荐

    Java 使用iText生成word文档,有表格,图片,文本有颜色

    首先,要使用iText生成Word文档,你需要在项目中引入iText的库。iText提供了一个名为iText-for-Office的模块,专门用于处理Microsoft Office格式。通常,你需要下载`itext7-for-office.jar`和`itext7-core.jar`这两...

    itext生成word文档,包含图片

    然而,根据你的需求,我们不仅要用iText生成Word文档,还要在文档中嵌入图片,这需要对iText的功能有深入的理解,并且可能需要结合其他库如Apache POI。以下是关于这个主题的详细知识: 1. **iText简介**: iText...

    Java Poi流根据Word模板插入相应的文本、表格和图片,并生成新的Word报告。

    总结一下,生成Word报告的过程主要包括以下步骤: 1. 加载Word模板:创建XWPFDocument对象,传入模板文件的输入流。 2. 替换文本:查找模板中的占位符,使用XWPFParagraph和XWPFRun替换文本。 3. 处理表格:查找或...

    富文本编辑器生成的含有图片的内容转换成word文档 java 后端下载

    7. **生成下载响应**:完成内容插入后,将Word文档输出为字节流,设置HTTP响应头,触发浏览器下载。 在提供的`ExportWord.java`文件中,我们可以预期它包含了上述部分的实现代码。具体来说,它可能有以下几个方法:...

    freemarker生成word

    - 创建Word文档:使用FreeMarker的`Template`类和数据模型,生成Word文档的字节流。 - 写入文件:将生成的字节流写入`.docx`文件。 5. 博文链接中的示例: 博文链接中可能详细讲解了如何实现这个过程,包括创建...

    java生成word,包括word表格,表格插入图片,jar包都在了

    Java生成Word文档是一种常见的需求,特别是在企业级应用中,例如报告生成、数据导出等。在Java中,我们可以使用各种库来实现这个功能,比如Apache POI,它是一个开源项目,提供了API来处理Microsoft Office格式的...

    springboot的实现word文档下载.zip

    在Spring Boot应用中,我们可以利用Freemarker模板引擎来生成Word文档,并提供给用户下载。以下将详细讲解这个过程。 1. **Spring Boot基础** Spring Boot是Spring框架的一个简化版,它旨在简化Spring应用程序的...

    java 将内容,图片写到word中

    在Java编程环境中,生成Word文档是一项常见的任务,尤其在企业级应用中,如报告生成、数据导出等。本示例将重点讲解如何利用Java将文本内容和图片写入Word文档,以实现这一功能。 首先,我们需要引入一个库来帮助...

    servlet生成word

    当我们需要在Web应用中生成Word文档时,Servlet可以发挥重要作用。本篇将详细介绍如何使用Servlet生成Word文档,以及涉及的相关技术。 首先,要理解Servlet的基本原理。Servlet是Java EE(企业版)的一部分,它是一...

    DocX类操作WORD文档——把图片插入到书签指定位置

    在.NET开发环境中,处理Microsoft Office文档,特别是Word文档时,我们常常会遇到需要对文档进行各种操作的需求,比如插入图片。DocX是一个轻量级、易于使用的库,它允许开发者在不依赖Microsoft Word的情况下,对...

    java利用poi生成word

    在这个场景中,"java利用poi生成word"指的是使用Apache POI库来编程生成Word文档。Apache POI提供了一个API,允许开发者通过Java代码操作Word文档的各个部分,如文本、图片、表格等。 首先,让我们深入了解一下...

    富文本编辑器导出word

    利用这个库,我们可以解析富文本编辑器生成的HTML,提取文本和样式,然后创建对应的Word文档结构。 以下是实现这个功能的基本步骤: 1. **HTML解析**:使用HTML解析库(如Jsoup)解析富文本编辑器生成的HTML,获取...

    JAVA利用poi完成word转pdf,内容包括两个现成工具类和使用到的所有jar包

    在Java开发中,有时我们需要将Word文档转换为PDF格式,以满足不同的应用场景或者跨平台兼容的需求。Apache POI是一个流行的库,主要用于处理Microsoft Office格式的文件,如Word(.doc/.docx)和Excel(.xls/.xlsx)...

    word文档读取和存入ACCESS

    这通常通过读取文档的字节流完成。在Python中,可以使用`open()`函数以'rb'模式打开文档,然后使用`read()`方法获取二进制数据。 4. **创建数据库表** 首先,我们需要在Access中创建一个新表,用于存储Word文档。...

    字节数组流byte文件

    标签“vue2字节流byte[]文件”提示我们这个话题可能与Vue2框架结合使用字节数组流的方式有关。Vue是一个流行的前端JavaScript框架,它允许开发者以组件化的方式构建用户界面。在Vue2中,可能会遇到需要处理二进制...

    make-word-by-java.rar_JAVA读写WORD_Java Word_Word by Word_java 生成w

    本教程将详细讲解如何使用Java来读写Microsoft Word文档,重点在于“Word by Word”式的操作,即逐字处理,以及如何通过Java生成Word文档。以下就是基于提供的“make-word-by-java.rar”压缩包文件中的知识点。 1. ...

    一简单的方法jsp生成导出word

    如果你需要在Word文档中插入图片,可以使用XWPFDocument的insertImage方法,传入图像的字节数组和尺寸信息。 `jsp导出word.txt`可能是一个包含示例代码的文本文件,详细展示了如何在JSP中实现上述步骤。你可以查看...

    Java利用poi对word插入文字图片

    这个项目对于那些希望在Java应用程序中自动化生成或编辑Word文档的人来说非常有价值,比如报告生成、模板填充等场景。通过掌握Apache POI,你可以实现对Word文档的完全控制,让Java与Office世界无缝对接。

    C#生成bt种子 word文档

    它将数据结构如字符串、整数、列表和字典转换成字节流,方便在网络上传输。例如,字符串前缀会以数字表示其长度,后跟":",整数以"i"开始,以"e"结束,列表以"l"开始,"e"结束,字典以"d"开始,"e"结束。 2. **SHA1...

Global site tag (gtag.js) - Google Analytics