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 流形式

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/279173.html

(0)
上一篇 2022年8月6日
下一篇 2022年8月6日

相关推荐

发表回复

登录后才能评论