ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JAVA - 文件切分存储 - FileInputStream 流形式

2022-08-06 18:16:01  阅读:171  来源: 互联网

标签:count JAVA int bytes new 切分 fileInputStream FileInputStream size


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);
    }
}

 

 

标签:count,JAVA,int,bytes,new,切分,fileInputStream,FileInputStream,size
来源: https://www.cnblogs.com/500m/p/16557618.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有