将文件转换为二进制的文件,并将二进制写进文件
package ceshiOA; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.nio.ByteBuffer; import java.util.Arrays; public class Test { public static void main(String[] args) {doIt(5);} private static void doIt(int t){ Test test = new Test(); byte[] buffers =test.file2byte(new File("res/DocumentManager.rar")); OutputStreamWriter writer = null ; try{ int num = buffers.length %t == 0 ? buffers.length /t : buffers.length/t+1; for(int j = 0 ; j < t ; j ++){ writer = new OutputStreamWriter(new FileOutputStream("res/ProjectFiles/bytenumber("+j+").txt" , false) , "utf-8"); if(j == t-1){ byte[] buffer = new byte[buffers.length - num*j] ; System.arraycopy(buffers, num*j, buffer, 0, buffer.length); int forNum = buffer.length %1024 == 0 ? buffer.length /1024 : buffer.length/1024+1; for(int i= 0 ; i < forNum ; i++){ if(i == buffer.length/1024){ byte[] bu = new byte[buffer.length-i*1024] ; System.arraycopy(buffer, i*1024, bu, 0, bu.length); String str = Arrays.toString(bu).replaceAll(", ", " "); writer.write(str.substring(1,str.length()-1)); }else{ byte[] bu = new byte[1024] ; System.arraycopy(buffer, i*1024, bu, 0, bu.length); String str = Arrays.toString(bu).replaceAll(", ", " "); writer.write(str.substring(1,str.length()-1)); // writer.write(byte2string(bu)); } writer.write("\r\n"); writer.flush(); } }else{ byte[] buffer = new byte[num] ; System.arraycopy(buffers, num*j, buffer, 0, num); int forNum = buffer.length %1024 == 0 ? buffer.length /1024 : buffer.length/1024+1; for(int i= 0 ; i < forNum ; i++){ if(i == buffer.length/1024){ byte[] bu = new byte[buffer.length-i*1024] ; System.arraycopy(buffer, i*1024, bu, 0, bu.length); String str = Arrays.toString(bu).replaceAll(", ", " "); writer.write(str.substring(1,str.length()-1)); }else{ byte[] bu = new byte[1024] ; System.arraycopy(buffer, i*1024, bu, 0, bu.length); String str = Arrays.toString(bu).replaceAll(", ", " "); writer.write(str.substring(1,str.length()-1)); // writer.write(byte2string(bu)); } writer.write("\r\n"); writer.flush(); } } writer.flush(); } writer.flush(); } catch(Exception e){} test.byte2File(buffers); } private static String byte2string(byte[] buffer){ StringBuilder sb = new StringBuilder(); for(byte b : buffer){ sb.append(" "+b); } return sb.toString(); } private void byte2File(byte[] buffer){ FileOutputStream os = null ; try{ os = new FileOutputStream(new File("res/copyFile.rar")); os.write(buffer); os.flush(); } catch(Exception e){} finally{ if(os != null ){ try { os.close() ; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } private byte[] file2byte(File file){ FileInputStream os = null ; ByteBuffer buffer = ByteBuffer.allocate(10485760*20) ; try{ os = new FileInputStream(file); byte[] byBuffer = new byte[1024] ; int length = 0 ; while((length = os.read(byBuffer)) != -1){ byte[] putb = new byte[length]; System.arraycopy(byBuffer, 0, putb, 0, length); buffer.put(putb); } buffer.flip(); byte[] result = new byte[buffer.limit()] ; System.arraycopy(buffer.array(), 0, result, 0, result.length); return result; } catch(Exception e){ return new byte[1] ; } finally{ if(os!=null){ try { os.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
将二进制的文件还原为原文件
package ceshiOA; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; public class Binarry2File { public static void main(String[] args) { new Binarry2File().getFiles("res/ProjectFiles/", "res/project.rar"); } public void getFiles(String dirs , String saveFile){ File[] files = new File(dirs).listFiles(); BufferedReader reader = null ; FileOutputStream os = null ; for(File file : files){ try { os = new FileOutputStream(saveFile,true); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } System.out.println(file.getName()); try{ reader = new BufferedReader(new InputStreamReader(new FileInputStream(file),"utf-8")); String str = null ; while((str = reader.readLine()) != null){ String[] strs = str.split(" "); byte[] buffer =new byte[strs.length]; for(int i = 0 ; i < strs.length ; i ++){ buffer[i] = Byte.parseByte(strs[i]); } System.out.println(str); os.write(buffer); } os.flush(); } catch(Exception e ){ e.printStackTrace(); } finally{ if(reader!=null){ try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } if(os != null ){ try { os.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } } }
相关推荐
如何利用 Java 实现 QQ 文件传输功能 现在, 通过网络传输文件已经非常普遍, 各种传输工 具也很多, 最具有代表性的就是 QQ 提供的文件传输功能了, 它能让好友之间方便的把自己的文件传给对方。 仔细查看 QQ 的...
在QT上开发的文件传输工具,利用TCP实现文件传输,支持断点续传操作。
采用Visual C++ 6.0开发的一个TCP文件传输系统,采用多线程的传输方式,支持断点续传,利用配置文件设置基本的初始化信息。 文件包括源代码和安装包,源代码里包括自定义的文件传输通信协议。 程序采用分层的设计...
采用Visual C++ 6.0开发的一个TCP文件传输系统,采用多线程的传输方式,支持断点续传,利用配置文件设置基本的初始化信息。 文件包括源代码和安装包,源代码里包括自定义的文件传输通信协议。 程序采用分层的设计...
Socket进行文件传输的例子 服务器先向客户端传文件 客户端也可向服务器端传文件
C# socket TCP 大文件传输同时实现断点续传
基于openssl的ftp文件传输系统源码基于openssl的ftp文件传输系统源码基于openssl的ftp文件传输系统源码基于openssl的ftp文件传输系统源码基于openssl的ftp文件传输系统源码基于openssl的ftp文件传输系统源码基于...
java毕业设计——java文件传输系统的设计与实现(论文+源代码).zip java毕业设计——java文件传输系统的设计与实现(论文+源代码).zip java毕业设计——java文件传输系统的设计与实现(论文+源代码).zip java毕业设计...
1服务端接收文件,客户端发送文件。 2 每个Socket连接同时只能够传输一个文件。 3 可同时发送网络消息 网络消息的消息格式为: @+nnnnn+消息内容,其中@为消息头,nnnnn为消息...-24 -24 接收方出错,文件传输被取消
UDP文件传输.rar UDP文件传输.rar UDP文件传输.rar UDP文件传输.rar UDP文件传输.rar UDP文件传输.rar
基于java的p2p文件传输代码.rar基于java的p2p文件传输代码.rar基于java的p2p文件传输代码.rar基于java的p2p文件传输代码.rar基于java的p2p文件传输代码.rar基于java的p2p文件传输代码.rar基于java的p2p文件传输代码....
c++编写的 MFC socket 文件传输 编译通过 可直接运行
很多人都有过使用网络蚂蚁或网络快车软件下载互联网文件的经历,这些软件的使用可以大大加速互联网上文件的传输速度,减少文件传输的时间。这些软件为什么有如此大的魔力呢?其主要原因是这些软件都采用了多线程下载...
实现大文件多文件传输,带进度条,上传时间 大小的记录
通过采用多层架构设计的B/S模式文件传输平台,建立具有高内聚、低耦合、易扩展的特性。平台实现了文件发送、文件接收、监控管理、查询统计、系统管理等功能,能够支持FTP、消息中间件、邮件等多种传输方式,并可根据...
文件传输源码 文件传输源码 文件传输源码 文件传输源码
通过IO流把文件传到前端并下载
1、学习InIOCP开源组件开发的一个简单文件上传例子,支持大文件传输(测试过10.6G文件传输) 2、服务端最小化到托盘,便于7*24小时运行 3、编译本程序需要先安装InIOCP开源组件 4、InIOCP开源组件
JAVA文件传输(论文+源代码) JAVA文件传输(论文+源代码) JAVA文件...JAVA文件传输(论文+源代码) JAVA文件传输(论文+源代码) JAVA文件传输(论文+源代码) JAVA文件传输(论文+源代码) JAVA文件传输(论文+源代码) JAVA文件传
C# 内网文件传输,适合有一定C#基础的人