精华内容
下载资源
问答
  • 刚入行的菜鸟一枚,最近遇到一个问题就是数据库中存储的照片写到生成的Word文档中。查阅了很资料最终解决了这个问题。 我用的方法是在数据库中获取到存储的图片的二进制将二进制流写到本地的文件夹中。然后从...
    刚入行的菜鸟一枚,最近遇到一个问题就是将数据库中存储的照片写到生成的Word文档中。查阅了很多资料最终解决了这个问题。
    我用的方法是在数据库中获取到存储的图片的二进制。将二进制流写到本地的文件夹中。然后从本地将图片导进Word中。
    那么来看下我这种比较笨的解决方法。

    Java代码:
    jar包:base64-2.3.8.jar (自己可以下载)
    	Blob blob=null;
    	BufferedInputStream is=null;
    	byte[] b=null;
    	try{
    	//我的是直接在数据库中查询出的存储在数据库中的图片的二进制
    	//也可以用其他方法获取图片的二进制,例子也比较多
    		rs=ps.executeQuery(sql);
    		if(rs.next()){
    	    	blob=rs.getBlob(1);//获取图片的二进制
    		}
    		is=new BufferedInputStream(blob.getBinaryStream());
    		b=new byte[(int)blob.length]
    		int len=b.length;
    		int offset=0;
    		int read=0;
    		while(offset < len && (read=is.read(b,offset,len-offset))>=0){
    		    offset+=read;
    		}
    	}
         BASE64Decoder decoder = new sun.misc.BASE64Decoder();
         BASE64Encoder encoder = new sun.misc.BASE64Encoder();
         try {
            String content = encoder.encodeBuffer(b).trim();
            byte[] bs = decoder.decodeBuffer(content);
            for (int ii = 0; ii < bs.length; ii++) {
               if (bs[ii] < 0) {
                  //调整异常数据
                  bs[ii] += 256;
               }
            }
            //生成jpeg图片
            String path = "D:\\Image\\a.jpg";// D:\Image这个路径可以自己指定。 a.jpg相当于一个模板(自认为)
            OutputStream outs = new FileOutputStream(path);
            outs.write(bs);
            outs.flush();
            outs.close();
            System.out.println("新图片已生成!");
    		
    	第一次写东西,希望会有所帮助。写的不好请多多包涵!!
    
    

    展开全文
  • 2、所有存入zip文件的动作在内存中完成,直接将二进制数据提供给用户。 据我了解到的公司大部分,一般是通过第种思路进行处理。 解决过程 1、poi excel生成过程 //代码不在展示 2、excel放入zip过程 3、...

    实现思路

    一般实现标题中所说的zip文件下载,目前本人了解到的有两种:

    1、将所有要压入到ZIP中的数据,优先落地至服务器临时指定位置。在这个过程中需要与服务器发生写入、读取、删除三次IO动作

    遇到并发情况会暴露很多问题。

    2、将所有存入zip文件的动作在内存中完成,直接将二进制数据提供给用户。

    据我了解到的公司大部分,一般是通过第一种思路进行处理。

    解决过程

    1、poi excel生成过程  //代码不在展示

    2、excel放入zip过程 

    3、输出到网页端

    框架信息/JAR信息

    1、SSM

    2、JDK1.7

    3、POI 3.8(还不是稳定版本)

    代码

    @ResponseBody
    	@RequestMapping(value = { "/downloadPerformanceTasksZip" })
    	@AvoidDuplicateSubmission(needSaveToken = true)
    	@BussAnnotation(moduleName = "", option = "")
    	public  void downloadPerformanceTasksZip(PerformanceTasks performanceTasks,String  deptId,
    											HttpServletResponse response){
    		OrgList orglist =  orglistServiceI.findObjectByPK(deptId);
    		//依据部门id查询出当前部门下得所有用户
    		List<Users>  userList = userServiceI.listUserByDetptId(deptId);
    		//查询出当前用户的所有数据
    		
    		try {
    			//创建临时文件生成zip
    			String filename = orglist.getOrgCnName()+".zip";
    			//设置响应头
    			response.addHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(filename, "UTF-8"));
    	        response.setContentType("application/x-msdownload");
    	    	ServletOutputStream servletOS;
    	    	//获取到输出流
    			servletOS = response.getOutputStream();
    			//zip输入流声明
    			ZipOutputStream zos = new ZipOutputStream(servletOS);
    			//二进制输出流
    			ByteArrayOutputStream ostream = null;
    			//输入流
    			InputStream is = null;
    			for (Users users : userList) {
    				List<PerformanceTasks> list =  performanceTasksServiceI.listAllPerformanceTasksByUserId(users.getUserId());
    				if(list!=null&&list.size()>0){
    					ostream = new ByteArrayOutputStream();
    					//POI生成的 Workbook 对象
    					Workbook wb = ExcleUtil.getExcel(users, list);
    					//将获取到得转换为二进制数据 放入输入流中 
    					wb.write(ostream);
    					byte[] content = ostream.toByteArray();
    					//二进制数据写入到输入流中
    					is = new ByteArrayInputStream(content);
    					//向zip中添加文件按信息
    					zos.putNextEntry(new ZipEntry(users.getCnUserName()+".xls"));
    					int bytesRead = 0;
    					while ((bytesRead = is.read()) != -1) {
    						zos.write(bytesRead);
    					}
    				}
    				
    			}
    //			File zipFile = File.createTempFile(filename, ".zip");
    //			FileOutputStream fos = new FileOutputStream(zipFile);
    //			CheckedOutputStream cos = new CheckedOutputStream(fos, new Adler32());
    			if(is!=null){
    				is.close();
    			}
    			if(ostream!=null){
    				ostream.close();
    			}
    			zos.closeEntry();
    			zos.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		
    	}

    如各位有更好的解决方案以及思路 欢迎留言分享

    展开全文
  • 一、什么是Java文件 Java文件Java程序的二进制表示形式。每一个文件代表一个类或者接口。...你可以其他语言的程序编译为类文件,也可以将Java程序文件编译为其他二进制形式。Java文件一个...

    一、什么是Java类文件    Java类文件是Java程序的二进制表示形式。每一个类文件代表一个类或者接口。不可能在一个类文件中放入多个类或者接口。这样就使得无论类文件是在哪一种平台上生成,都可以在任何主机上执行。    虽然类文件是Java体系结构的一部分,但是他并不是与Java语言不可分的。

    你可以将其他语言的程序编译为类文件,也可以将Java程序文件编译为其他二进制形式。Java类文件是一个基于8-bit字节的二进制流。数据块顺序的、无分割符的、big-endian的形式存储。

    二、类文件的内容    Java的类文件中包含了所有Java虚拟机所需要的关于类和接口的信息。

    所有类文件中的信息都以以下的四种基本类型的存储:    Table 6-1。 Class file "primitive types"    u1    a single unsigned byte    u2    two unsigned bytes    u4    four unsigned bytes    u8    eight unsigned bytes    类文件中的主要部分以表6-2的顺序存储:    Table 6-2。

    Format of a ClassFile Table    Type&    #9;Name    Count    u4    magic    1    u2    minor_version    1    u2    major_version    1    u2    constant_pool_count    1    cp_info    constant_pool    constant_pool_count-1    u2    access_flags    1    u2    this_class    1    u2    super_class    1    u2    interfaces_count    1    u2    interfaces    interfaces_count    u2    fields_count    1    field_info    fields    fields_count    u2    methods_count    1    method_info    methods    methods_count    u2    attributes_count    1    attribute_info    attributes    attributes_count

    1、魔术编码(magic)    每一个Java类文件的开头四个字节都是魔术编码(OxCAFEBABE)。

    通过魔术编码可以很容易识别类文件。

    2、副版本号和主版本号(minor_version and major_version)    剩下的四个字节是副版本号和主版本号。但Java技术在进化时,一些新的特性可能会被加入到类文件中。每一次类文件格式的变化,都会相应的改变版本号。

    虚 拟机通过版本号来识别自己能够处理的类文件。Java虚拟机往往只能处理一个给定的主版本号和其下的一些副版本号。虚拟机必须拒绝那些不再处理范围内的类 文件。

    全部

    展开全文
  • 二进制XML存储方案

    2008-09-25 09:48:50
    每个文档包含一个根节点(root),根节点下面包含一个或者多个子节点,如此类推。 文档包含一个文件头,其中包含了一些标识串、操作系统版本、文件大小、文档创建时间等信息。 每个节点也包含一个节点头,表明该节点...
  • 一、什么是Java文件 Java文件Java程序的二进制表示形式。每一个文件代表一个类或者接口。...你可以其他语言的程序编译为类文件,也可以将Java程序文件编译为其他二进制形式。Java文件一个...

    一、什么是Java类文件    Java类文件是Java程序的二进制表示形式。每一个类文件代表一个类或者接口。不可能在一个类文件中放入多个类或者接口。这样就使得无论类文件是在哪一种平台上生成,都可以在任何主机上执行。    虽然类文件是Java体系结构的一部分,但是他并不是与Java语言不可分的。

    你可以将其他语言的程序编译为类文件,也可以将Java程序文件编译为其他二进制形式。Java类文件是一个基于8-bit字节的二进制流。数据块顺序的、无分割符的、big-endian的形式存储。

    二、类文件的内容    Java的类文件中包含了所有Java虚拟机所需要的关于类和接口的信息。

    所有类文件中的信息都以以下的四种基本类型的存储:    Table 6-1。 Class file "primitive types"    u1    a single unsigned byte    u2    two unsigned bytes    u4    four unsigned bytes    u8    eight unsigned bytes    类文件中的主要部分以表6-2的顺序存储:    Table 6-2。

    Format of a ClassFile Table    Type&    #9;Name    Count    u4    magic    1    u2    minor_version    1    u2    major_version    1    u2    constant_pool_count    1    cp_info    constant_pool    constant_pool_count-1    u2    access_flags    1    u2    this_class    1    u2    super_class    1    u2    interfaces_count    1    u2    interfaces    interfaces_count    u2    fields_count    1    field_info    fields    fields_count    u2    methods_count    1    method_info    methods    methods_count    u2    attributes_count    1    attribute_info    attributes    attributes_count

    1、魔术编码(magic)    每一个Java类文件的开头四个字节都是魔术编码(OxCAFEBABE)。

    通过魔术编码可以很容易识别类文件。

    2、副版本号和主版本号(minor_version and major_version)    剩下的四个字节是副版本号和主版本号。但Java技术在进化时,一些新的特性可能会被加入到类文件中。每一次类文件格式的变化,都会相应的改变版本号。

    虚 拟机通过版本号来识别自己能够处理的类文件。Java虚拟机往往只能处理一个给定的主版本号和其下的一些副版本号。虚拟机必须拒绝那些不再处理范围内的类 文件。

    全部

    展开全文
  • java文件内容介绍一、什么是Java文件Java文件Java程序的二进制表示形式。每一个文件代表一个类或者接口。...你可以其他语言的程序编译为类文件,也可以将Java程序文件编译为其他二进制形式。Java文件...
  • Java文件

    2013-05-08 18:06:13
    一、什么是Java文件  Java文件Java程序的二进制表示形式。每一个文件代表一个类或者接口。不可能在一个文件中放入...你可以其他语言的程序编译为类文件,也可以将Java程序文件编译为其他二进制形式。
  • Java文件解析

    2010-03-26 22:02:00
    一、什么是Java文件 Java文件Java程序的二进制表示形式。每一个文件代表一个类或者接口。不可能在一个文件中放入多个类...你可以其他语言的程序编译为类文件,也可以将Java程序文件编译为其他二进制形式。
  • 一、什么是Java文件  Java文件Java程序的二进制表示形式。每一个文件代表一个类或者接口。不可能在一个文件中放...你可以其他语言的程序编译为类文件,也可以将Java程序文件编译为其他二进制形式。 Java
  • Java二进制IO类与文件复制操作实例 16目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系...
  • Java二进制IO类与文件复制操作实例 16目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系...
  • java错题整理

    2020-03-21 13:23:02
    一、 1.java语言中是区分大小写的,比如类名的书写。 2.java的字符类型采用的是Unicode编码(一个Unicode码占16个比特),...5.如果Java源文件中包含了多个类,那么用编译器javac编译完源文件后将生成多个拓展名为....
  • java源码包---java 源码 大量 实例

    千次下载 热门讨论 2013-04-18 23:15:26
     Java二进制IO类与文件复制操作实例,好像是本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1目标文件 摘要:Java源码,...
  • 目标程序(二进制语言),且句翻译执行。 编译:分为静态编译和动态编译。c/c++就是采用静态编译。 静态编译:利用编译程序把高级语言写成的源程序翻译为二进制语言的文件的过程。运行的时候直接运行这.exe...
  • 生成一个二进制文件,可以使用同一工具其解压缩为原始文件。 不久添加更字符集,也许还会支持不同的文件类型。 用法: java -jar HuffmanCoding.jar [option] < input_file > 选项: [-e]编码 [-...
  • 上一篇文章中我们看到了如何使用ASM生成一个简单的JAVA类,里面使用到了很的基本概念,比如:方法描述、引用描述等,下面一一介绍。 一、类版本:  一个Java二进制的类文件,都有一个版本,因此ASM中提供了几...
  • java源码包2

    千次下载 热门讨论 2013-04-20 11:28:17
     Java二进制IO类与文件复制操作实例,好像是本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1目标文件 摘要:Java源码...
  • java源码包3

    千次下载 热门讨论 2013-04-20 11:30:13
     Java二进制IO类与文件复制操作实例,好像是本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1目标文件 摘要:Java源码...
  • java源码包4

    千次下载 热门讨论 2013-04-20 11:31:44
     Java二进制IO类与文件复制操作实例,好像是本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1目标文件 摘要:Java源码...
  • JAVA_API1.6文档(中文)

    万次下载 热门讨论 2010-04-12 13:31:34
    javax.imageio.stream Java Image I/O API 的一个包,用来处理从文件和流中产生的低级别 I/O。 javax.management 提供 Java Management Extensions 的核心类。 javax.management.loading 提供实现高级动态加载的类...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     Java二进制IO类与文件复制操作实例,好像是本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1目标文件 摘要:Java源码,...
  • Windows和Linux二进制文件可在此处下载: 要在Linux上构建,请阅读文件。 在Mac上,可以使用brew install codequery通过 brew install codequery 。 请阅读以了解更信息。 它与cscope和ctags有何不同? 有什么...
  • Java二进制IO类与文件复制操作实例 16目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系...
  • 如果Java源文件中包含了多个类,那么用编译器javac编译完源文件后将生成多个扩展名为.class的文件。 T 1-4 在一个编辑器中编写好的Java应用程序,是扩展名为.class的文件。 F 2-1 有一段java 应用程序,它的主类名是...
  • java开源包1

    千次下载 热门讨论 2013-06-28 09:14:34
    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...
  • java开源包12

    热门讨论 2013-06-28 10:14:45
    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...
  • Java资源包01

    2016-08-31 09:16:25
    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...
  • java开源包101

    2016-07-13 10:11:08
    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...
  • java开源包11

    热门讨论 2013-06-28 10:10:38
    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 207
精华内容 82
关键字:

java将多个文件生成一个二进制文件

java 订阅