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 流形式的更多相关文章

  1. java 文件字节和字符流 缓冲流

    流的原理 1) 在 Java 程序中,对于数据的输入/输出操作以“流”(stream) 方式进行:2) J2SDK 提供了各种各样的“流”类,用以获取不同种类的数据:程序中通过标准的方法输入或输出数据 ...

  2. Java文件处理之IO流

    一.概述 流:代表任何有能力产出数据的数据源对象或者是有能力接受数据的接收端对象 :其作用是为数据源和目的地建立一个输送通道. IO流:是程序中一套用于数据传输的机制.IO流是Input流和Outpu ...

  3. Java分享笔记:FileInputStream流的 read()方法 和 read(byte[] b)方法

    /*------------------------ FileInputStream: ....//输入流,字节流 ....//从硬盘中存在的一个文件中读取内容,读取到程序中 ....//read() ...

  4. Java文件字节流和字符流

    输入流:只能从中读取数据,不能向其写入数据. InputStream,Reader 输出流:只能向其中写入数据,不能从中读取数据. OutputStream, Writer 输入流是相对于程序而言,外 ...

  5. Java文件与io——打印流和对象流

    打印流的主要功能是用于输出,在整个IO包中打印流分为两种类型: 字节打印流:PrintStream 字符打印流:PrintWriter 打印流可以很方便的进行输出 public class Print ...

  6. Java文件操作(IO流)

     File 在java中用来表示文件和文件夹的具体类. File的构建 File的常见方法   字节流:       对象序列化:   字符流:     转接流: InputStreamReader. ...

  7. Java文件与io——缓冲流

    对文件或其它目标频繁的读写操作,效率低,性能差. 使用缓冲流的好处,能够更高效的读写信息,原理是将数据先缓冲起来,然后一起写入或者读取出来. BufferedInputStream:为另一个输入流添加 ...

  8. java文件操作(读流)

    try{ InputStream is = new FileInputStream("abc.txt"); InputStreamReader ir = new InputStre ...

  9. Java文件与io——字符流

    Writer写入字符流的抽象类.对文件的操作使用:FileWriter类完成 Reader读取字符的抽象类. public class CharDemo { /** * @param args */ ...

  10. java 写 Excel(不生成实体文件,写为流的形式)

    java 写 Excel(不生成实体文件,写为流的形式) public String exportReportExcel(String mediaCode, List<SimpleMediaRe ...

随机推荐

  1. 当一名阿里P9是什么样的体验?

    今天斗胆来跟大家分享一下作为一位阿里的P9是什么样的体验? 首先还是简单给大家介绍一下阿里的p9是属于一个什么样的层级?阿里p9中文名称叫做资深技术专家,一般大概带的团队有从几十人到一两百号人不等,具 ...

  2. Windows 7更新失败的解决方法

    你好,1.在开始菜单中点击运行,→输入"services.msc"→找到"windows update"右击选择"停止":2.进入C:\wi ...

  3. Docker下的SqlServer发布订阅启用

    一.准备一个Docker的sqlserver #创建挂载数据文件夹 mkdir -p /home/mssql/data #创建挂载日志文件夹 mkdir /home/mssql/log #给文件夹权限 ...

  4. TypeChat、JSONSchemaChat实战 - 让ChatGPT更听你的话

    TypeChat 用一句话概括,就是用了它你可以让大语言模型(比如 ChatGPT)将自然语言转换成特定类型的 JSON 数据. 我们在使用 ChatGPT 的时候,大致流程如下: 假如我们需要 Ch ...

  5. android Handler应用

    android在运行时改变ui需要在ui线程中修改才行,不然就会报错或者无法启动应用. 我们怎么可以做事不管呢? 既然不能在ui线程外的地方运行修改ui的代码,我们可以用Handler解决这个问题, ...

  6. Json Schema介绍 和 .net 下的实践 - 基于Lateapexearlyspeed.Json.Schema - 基础1 - type关键字和string类型

    本系列旨在介绍Json Schema的常见用法,以及.net实现库Lateapexearlyspeed.Json.Schema的使用 这篇文章将介绍Json Schema中的type关键字,和stri ...

  7. java常用正则表达式工具

    public class RegexUtils { /** * 是否是无效手机格式 * @param phone 要校验的手机号 * @return true:符合,false:不符合 */ publ ...

  8. DTSE Tech Talk 第18期丨统计信息大揭秘,数仓SQL执行优化之密钥

    摘要:华为云EI DTSE技术布道师王跃,针对统计信息对于查询优化器的重要性,GaussDB(DWS)最新版本的analyze当前能力,与开发者和伙伴朋友们展开交流互动,帮助开发者快速上手使用统计信息 ...

  9. CentOS7安装maven,mvn clean -DskipTests package

    1.JAVA_HOME 首先确保正确安装并配置了JAVA_HOME 我这里安装了jdk1.8 2.下载maven 3.6.3 wget https://mirrors.tuna.tsinghua.ed ...

  10. 累加求和 1~ n求和

    a=1 ~ n 的求和 \[\sum_{a=1}^n a \] 公式:(首项 + 末项) * 项数/2 如果 a=1. n = 10 => (1+10)10/2 = 55 Python 代码 a ...