java 输入流可以合并吗_HOW2J Java 文件输入输出流,合并与拆分
//需要所指目录下确有一个文件供拆分
//多余的另成一个文件
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 文件输入输出流,合并与拆分相关推荐
- java输出流输入流的使用_Java中的IO流之文件输入输出流
Java中的IO流之文件输入输出流 1.文件流介绍 文件流是以字节为单位进行读写文件的,所以属于字节流,并且是低级流.文件流位于java.io包下. 输入输出流分别是FileInputSteam和Fi ...
- 1.6 Java字节流的使用:字节输入/输出流、文件输入/输出流、字节数组输入/输出流
InputStream 是 Java 所有字节输入流类的父类, OutputStream 是 Java 所有字节输出流类的父类, 它们都是一个抽象类,因此继承它们的子类要重新定义父类中的抽象方法. 下 ...
- 一只大二狗的Android历程--文件输入输出流 SharedPreference
2017年2月28日 5:10 PM 上篇博文中写道,这次要学习数据的存储完善那个角色软件,结果在XML解析上卡了壳,看了N多论坛示例代码无奈总是执行不出来,没办法为了不拖慢进度只能继续往下学习, 这 ...
- C++学习笔记-第7单元-文件输入输出流
C++学习笔记-第7单元 文章目录 C++学习笔记-第7单元 第7单元 文件输入输出流 单元导读 7.1 [C++17]文件系统 7.1.1 C++17的文件系统库简介 7.1.2 路径类及操作 7. ...
- 字节输入输出流,文件输入输出流
1.字节输入输出流 1.1 字节输入流 InputStream 类及其子类的对象表示字节输入流,InputStream 类的常用子类如下. ByteArrayInputStream 类:将字节数组转换 ...
- C++文件输入/输出流类
文章目录 文件输入/输出流类 表5: 文件读写模式 表6:ios_base 标识的组合意义 ofstream:写入文件的流类 例8:输出文本文件 例9:输出二进制文件 ifstream:从文件中读取的 ...
- php 输入 输出,php的文件输入输出流php://input
原标题: php的文件输入输出流php://input PHP输入流php://input 在使用xml-rpc的时候,server端获取client数据,主要是通过php输入流input,而不是$_ ...
- java输入流从指定字节读取,JAVA输入输出流-字节流篇
当前位置:我的异常网» 综合 » JAVA输入输出流-字节流篇 JAVA输入输出流-字节流篇 www.myexceptions.net 网友分享于:2013-08-14 浏览:8次 JAVA输入输 ...
- java ioutils 写入文件_文件输入输出流工具: IOUtils使用总结
序言 以前写文件的复制很麻烦,需要各种输入流,然后读取line,输出到输出流...其实apache.commons.io里面提供了输入流输出流的常用工具方法,非常方便.下面就结合源码,看看IOUTil ...
- java 之文件输入输出流
1. 使用文件字符输出流将一段文字存入文件,然后使用输入流读取文件中的内容. package s1;import java.io.*; public class DuFile {public stat ...
最新文章
- 北大韦神透露现状:自己课讲得不太好,中期学生退课后就剩下5、6个人...
- 端口聚合有哪几种方式?
- mtk6589显示子系统笔记(一)
- 释疑の手工凭证界面不显示页数
- 安装和使用Glassfish
- 【RabbitMQ】 WorkQueues
- react native loading动画_React高级进阶指南
- 前端:CheckBox事件函数js
- JavaScript学习笔记——运算符和表达式
- WebSocket 测试
- (译)如何制作一个类似tiny wings的游戏:第二部分(完) - 子龙山人 ...
- python编写密码登录程序_python初学之用户登录的实现过程(实例讲解)
- 关于QQ的相关代码收集整理
- 网站加载图片慢 网页响应慢 网页优化
- 癫狂的dom——利用css3让dom动起来
- el-table中的树形结构
- 卡拉兹猜想证明用python_科普:数学领域中的感觉像是“民科”的卡拉兹猜想
- 解决使用JSONObject.fromObject方法没有对应依赖的问题
- 前端匹配服务器地址修改文件,修改服务器的监听地址
- 极速office(word)如何导出PDF格式
热门文章
- LeetCode简单题之数组中两元素的最大乘积
- LeetCode简单题之矩阵中的幸运数
- TVM代码生成codegen
- 稀疏性如何为AI推理增加难度
- TinyML-TVM是如何驯服Tiny的(下)
- 各种光学仪器成像技术(上)
- 2021年大数据Flink(三十):Flink ​​​​​​​Table API SQL 介绍
- 2021年大数据Flink(二十二):Time与Watermaker
- Laravel Dcat-admin 详情页多栏布局开发
- Java 遍历map