JAVA - 文件切分存储 - FileInputStream 流形式
package stream;
import java.io.*;
/**
* @author*/
public class TestStream {
public static void main(String[] args) throws IOException {
// *********************** read
File file = new File("D:/stream/note.txt");
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(file);
long length = file.length();
int size = 3*1024;
byte[] bytes = new byte[size];
int count = 0;
if (length<=size) {
// 一次存储
myWrite(fileInputStream,bytes,0,size,0);
} else {
// 分段存储
for (long i = length; i > 0; i--) {
if (i % size==0) {
count++;
myWrite(fileInputStream,bytes,0,size,count);
}
if (i == 1 && length % size!=0){
// 处理剩余的 。
size = (int) (length - size*count);
bytes = new byte[size];
count++;
myWrite(fileInputStream,bytes,0,size,count);
}
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
fileInputStream.close();
}
}
public static void myWrite(FileInputStream fileInputStream,byte[] bytes,int index,int size,int count) throws IOException {
fileInputStream.read(bytes, index, size);
File wroteFile = new File("D:/stream/wrote-"+count+".txt");
wroteFile.delete();
FileOutputStream fileOutputStream = new FileOutputStream(wroteFile);
fileOutputStream.write(bytes);
}
}

JAVA - 文件切分存储 - FileInputStream 流形式的更多相关文章
- java 文件字节和字符流 缓冲流
流的原理 1) 在 Java 程序中,对于数据的输入/输出操作以“流”(stream) 方式进行:2) J2SDK 提供了各种各样的“流”类,用以获取不同种类的数据:程序中通过标准的方法输入或输出数据 ...
- Java文件处理之IO流
一.概述 流:代表任何有能力产出数据的数据源对象或者是有能力接受数据的接收端对象 :其作用是为数据源和目的地建立一个输送通道. IO流:是程序中一套用于数据传输的机制.IO流是Input流和Outpu ...
- Java分享笔记:FileInputStream流的 read()方法 和 read(byte[] b)方法
/*------------------------ FileInputStream: ....//输入流,字节流 ....//从硬盘中存在的一个文件中读取内容,读取到程序中 ....//read() ...
- Java文件字节流和字符流
输入流:只能从中读取数据,不能向其写入数据. InputStream,Reader 输出流:只能向其中写入数据,不能从中读取数据. OutputStream, Writer 输入流是相对于程序而言,外 ...
- Java文件与io——打印流和对象流
打印流的主要功能是用于输出,在整个IO包中打印流分为两种类型: 字节打印流:PrintStream 字符打印流:PrintWriter 打印流可以很方便的进行输出 public class Print ...
- Java文件操作(IO流)
File 在java中用来表示文件和文件夹的具体类. File的构建 File的常见方法 字节流: 对象序列化: 字符流: 转接流: InputStreamReader. ...
- Java文件与io——缓冲流
对文件或其它目标频繁的读写操作,效率低,性能差. 使用缓冲流的好处,能够更高效的读写信息,原理是将数据先缓冲起来,然后一起写入或者读取出来. BufferedInputStream:为另一个输入流添加 ...
- java文件操作(读流)
try{ InputStream is = new FileInputStream("abc.txt"); InputStreamReader ir = new InputStre ...
- Java文件与io——字符流
Writer写入字符流的抽象类.对文件的操作使用:FileWriter类完成 Reader读取字符的抽象类. public class CharDemo { /** * @param args */ ...
- java 写 Excel(不生成实体文件,写为流的形式)
java 写 Excel(不生成实体文件,写为流的形式) public String exportReportExcel(String mediaCode, List<SimpleMediaRe ...
随机推荐
- Centos8 硬盘挂载
查看硬盘分区状况 fdisk -l 可以看到数据盘 /dev/vdb 大小为 10Gb,目前还没有进行分区. 对 /dev/vdb 资源盘进行分区 fdisk /dev/vdb //根据提示输入信息: ...
- 多维数组、Arrays类、稀疏数组、冒泡排序
多维数组 多维数组可以看成是数组的数组 比如二维数组就是一个特殊的一堆数组 其中每个元素就是一个数组. 二维数组: int a[][] = new int[2][5]; 解析:二维数组a可以看成一个两 ...
- OpenWRT的TTYD终端显示已拒绝连接
更改openwrt软路由后台管理地址后,发现TTYD终端无法连接,显示已拒绝连接,无法使用的解决方法. 解决方法: 1.使用puty工具连接软路由 2.编辑ttyd配置文件 root@OpenWrt: ...
- 关于Triple DES(3DES)对称加密算法
一.引言 在网络安全领域,对称加密算法作为一种常见的加密手段,被广泛应用于保障数据传输的保密性和完整性.其中,DES(Data Encryption Standard)算法作为一种经典的对称加密算法, ...
- vue上传文件显示进度条,当上传完成后间隔一秒进度条消失
<template> <el-upload class="avatar-uploader" action="api/file/upload" ...
- Spark SQL快速入门
Spark SQL快速入门 1.概述 spark SQL是Apache用于处理结构化数据的模块.其中包含SQL.DataFrame API.DataSet API,意味着开发人员可以在不同的API之间 ...
- 云图说|应用编排服务AOS,助力应用上云自动化
如今,企业想要扩大业务.进行创新,上云已经成为了必经之路.应用编排服务AOS为企业提供应用上云的自动化能力,支持编排华为云上的主流云服务,将复杂的云服务资源配置和应用部署配置通过模板描述,从而实现在华 ...
- 从架构设计理念到集群部署,全面认识KubeEdge
摘要:本篇文章将从KubeEdge架构设计理念.KubeEdge代码目录概览.KubeEdge集群部署三方面带大家认识KubeEdge. KubeEdge即Kube+Edge,顾名思义就是依托K8s的 ...
- JVM内存模型,你看这一篇就够了
摘要:JVM是一种用于计算设备的规范,是一个虚构出来的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的. 本文分享自华为云社区<[云驻共创]JVM内存模型的探知之旅>,作者:多米 ...
- 海量数据分析快准稳!GaussDB(for MySQL) HTAP只读分析特性详解
摘要:除了拥有 ClickHouse 本身的极致性能外,GaussDB(for MySQL)的HTAP只读分析在 MaterilizeMySQL引擎的性能和稳定性等方面具有更优秀的表现,为提供更快更准 ...