//需要所指目录下确有一个文件供拆分

//多余的另成一个文件

package File;

import java.util.*;

import java.io.*;

public class TestStrem{

public static void main(String[] args) {

int eachSize=100*1024//100k;

File scrFile = new File("d:/javaha/gys.txt");

splitFile(scrFile,eachSize);

}

public static void splitFile(File scrFile,int eachSize) {

if(0==scrFile.length())

throw new RuntimeException("文件长度为0,不可拆分");

byte[] fileConent = new byte[(int)scrFile.length()];

try {

FileInputStream fis =new FileInputStream(scrFile);

fis.read(fileConent);

fis.close();

}

catch(IOException e) {

e.printStackTrace();

}

int fileNumber;

if(fileConent.length % eachSize==0)

fileNumber =(int)(fileConent.length / eachSize);

else

fileNumber =(int)(fileConent.length / eachSize )+ 1;

for(int i=0;i

String eachFilename=scrFile.getName()+"-"+ i;

File eachFile =new File(scrFile.getParent(),eachFilename);

byte[] eachContent;

if(i!=fileNumber-1)

eachContent =Arrays.copyOfRange(fileConent, eachSize*i , eachSize);

else

eachContent =Arrays.copyOfRange(fileConent, eachSize*i , fileConent.length);

try {

FileOutputStream fos =new FileOutputStream(eachFile);

fos.write(eachContent);

fos.close();

System.out.format("输出子文件%s,其大小是%d字节",eachFile.getAbsolutePath(),eachFile.length());

}catch(IOException e) {

e.printStackTrace();

}

}

}

}

//合并,

package stream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import javax.security.auth.DestroyFailedException;

public class TestStream {

public static void main(String[] args) {

murgeFile("d:/", "eclipse.exe");

}

/**

* 合并的思路,就是从eclipse.exe-0开始,读取到一个文件,就开始写出到 eclipse.exe中,直到没有文件可以读

* @param folder

* 需要合并的文件所处于的目录

* @param fileName

* 需要合并的文件的名称

* @throws FileNotFoundException

*/

private static void murgeFile(String folder, String fileName) {

try {

// 合并的目标文件

File destFile = new File(folder, fileName);

FileOutputStream fos = new FileOutputStream(destFile);

int index = 0;

while (true) {

//子文件

File eachFile = new File(folder, fileName + "-" + index++);

//如果子文件不存在了就结束

if (!eachFile.exists())

break;

//读取子文件的内容

FileInputStream fis = new FileInputStream(eachFile);

byte[] eachContent = new byte[(int) eachFile.length()];

fis.read(eachContent);

fis.close();

//把子文件的内容写出去

fos.write(eachContent);

fos.flush();

System.out.printf("把子文件 %s写出到目标文件中%n",eachFile);

}

fos.close();

System.out.printf("最后目标文件的大小:%,d字节" , destFile.length());

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

java 输入流可以合并吗_HOW2J Java 文件输入输出流,合并与拆分相关推荐

  1. java输出流输入流的使用_Java中的IO流之文件输入输出流

    Java中的IO流之文件输入输出流 1.文件流介绍 文件流是以字节为单位进行读写文件的,所以属于字节流,并且是低级流.文件流位于java.io包下. 输入输出流分别是FileInputSteam和Fi ...

  2. 1.6 Java字节流的使用:字节输入/输出流、文件输入/输出流、字节数组输入/输出流

    InputStream 是 Java 所有字节输入流类的父类, OutputStream 是 Java 所有字节输出流类的父类, 它们都是一个抽象类,因此继承它们的子类要重新定义父类中的抽象方法. 下 ...

  3. 一只大二狗的Android历程--文件输入输出流 SharedPreference

    2017年2月28日 5:10 PM 上篇博文中写道,这次要学习数据的存储完善那个角色软件,结果在XML解析上卡了壳,看了N多论坛示例代码无奈总是执行不出来,没办法为了不拖慢进度只能继续往下学习, 这 ...

  4. C++学习笔记-第7单元-文件输入输出流

    C++学习笔记-第7单元 文章目录 C++学习笔记-第7单元 第7单元 文件输入输出流 单元导读 7.1 [C++17]文件系统 7.1.1 C++17的文件系统库简介 7.1.2 路径类及操作 7. ...

  5. 字节输入输出流,文件输入输出流

    1.字节输入输出流 1.1 字节输入流 InputStream 类及其子类的对象表示字节输入流,InputStream 类的常用子类如下. ByteArrayInputStream 类:将字节数组转换 ...

  6. C++文件输入/输出流类

    文章目录 文件输入/输出流类 表5: 文件读写模式 表6:ios_base 标识的组合意义 ofstream:写入文件的流类 例8:输出文本文件 例9:输出二进制文件 ifstream:从文件中读取的 ...

  7. php 输入 输出,php的文件输入输出流php://input

    原标题: php的文件输入输出流php://input PHP输入流php://input 在使用xml-rpc的时候,server端获取client数据,主要是通过php输入流input,而不是$_ ...

  8. java输入流从指定字节读取,JAVA输入输出流-字节流篇

    当前位置:我的异常网» 综合 » JAVA输入输出流-字节流篇 JAVA输入输出流-字节流篇 www.myexceptions.net  网友分享于:2013-08-14  浏览:8次 JAVA输入输 ...

  9. java ioutils 写入文件_文件输入输出流工具: IOUtils使用总结

    序言 以前写文件的复制很麻烦,需要各种输入流,然后读取line,输出到输出流...其实apache.commons.io里面提供了输入流输出流的常用工具方法,非常方便.下面就结合源码,看看IOUTil ...

  10. java 之文件输入输出流

    1. 使用文件字符输出流将一段文字存入文件,然后使用输入流读取文件中的内容. package s1;import java.io.*; public class DuFile {public stat ...

最新文章

  1. 北大韦神透露现状:自己课讲得不太好,中期学生退课后就剩下5、6个人...
  2. 端口聚合有哪几种方式?
  3. mtk6589显示子系统笔记(一)
  4. 释疑の手工凭证界面不显示页数
  5. 安装和使用Glassfish
  6. 【RabbitMQ】 WorkQueues
  7. react native loading动画_React高级进阶指南
  8. 前端:CheckBox事件函数js
  9. JavaScript学习笔记——运算符和表达式
  10. WebSocket 测试
  11. (译)如何制作一个类似tiny wings的游戏:第二部分(完) - 子龙山人 ...
  12. python编写密码登录程序_python初学之用户登录的实现过程(实例讲解)
  13. 关于QQ的相关代码收集整理
  14. 网站加载图片慢 网页响应慢 网页优化
  15. 癫狂的dom——利用css3让dom动起来
  16. el-table中的树形结构
  17. 卡拉兹猜想证明用python_科普:数学领域中的感觉像是“民科”的卡拉兹猜想
  18. 解决使用JSONObject.fromObject方法没有对应依赖的问题
  19. 前端匹配服务器地址修改文件,修改服务器的监听地址
  20. 极速office(word)如何导出PDF格式

热门文章

  1. LeetCode简单题之数组中两元素的最大乘积
  2. LeetCode简单题之矩阵中的幸运数
  3. TVM代码生成codegen
  4. 稀疏性如何为AI推理增加难度
  5. TinyML-TVM是如何驯服Tiny的(下)
  6. 各种光学仪器成像技术(上)
  7. 2021年大数据Flink(三十):Flink ​​​​​​​Table API  SQL 介绍
  8. 2021年大数据Flink(二十二):Time与Watermaker
  9. Laravel Dcat-admin 详情页多栏布局开发
  10. Java 遍历map