首页 > 编程语言 >java-文件分割

java-文件分割

时间:2024-11-10 08:50:15浏览次数:3  
标签:文件 分割 java int randomAccessFile bufferedOutputStream import new

package split;

import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.io.File;


public class Split {
    public static void main(String[] args) throws IOException {
        RandomAccessFile randomAccessFile = new RandomAccessFile("C:\\Users\\Administrator\\Desktop\\test.pdf", "r");
        int point = 0;//最开始
        long last = 0;//最后
        long lenth = randomAccessFile.length();//总长
        int size = 5;//文件大小,单位:M;

        int i = 0;
        while (true) {
            byte[] buffer = new byte[1024 * 1024];//缓冲区
            BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(
                    new FileOutputStream(
                            new File("C:\\Users\\Administrator\\Desktop\\zz\\test.part" + i++)
                    )
            );

            last = lenth - point;
            if (last > buffer.length * size) {
                for (int j = 0; j < size; j++) {
                    randomAccessFile.read(buffer);
                    bufferedOutputStream.write(buffer);
                    bufferedOutputStream.flush();//保存到磁盘上
                }
            } else {
                byte[] endBuffer = new byte[(int) last];
                randomAccessFile.read(endBuffer);
                bufferedOutputStream.write(endBuffer);
                bufferedOutputStream.close();
                bufferedOutputStream.flush();
                break;
            }
            point += buffer.length * size;
        }
        randomAccessFile.close();

//
//        ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(
//                10,11,1, TimeUnit.SECONDS,
//                new ArrayBlockingQueue<>(10),
//                new ThreadPoolExecutor.CallerRunsPolicy()
//                //跑着的,排满了后正跑着的和新增的,做完没事干要销毁的,指定时间单位,排队的,叫回没排上队的
//        );
//        Thread thread = new Thread(){
//            @Override
//            public void run() {
//全文复制到这里使用多线程
//            }
//        };
//        threadPoolExecutor.execute(thread);
//        threadPoolExecutor.shutdown();
    }
}

标签:文件,分割,java,int,randomAccessFile,bufferedOutputStream,import,new
From: https://www.cnblogs.com/used-conduit-onion/p/18537599

相关文章

  • java-文件编码
    packagecode;importjava.io.FileOutputStream;importjava.nio.file.Files;importjava.nio.file.Path;importjava.nio.file.Paths;importjava.util.*;publicclassOperation{privatestaticList<Reconstitution>sort;privatestaticbyte[]......
  • java-文件解码
    packageback;importjava.io.BufferedReader;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.InputStreamReader;importjava.util.HashMap;importjava.util.Map;publicclassBack{publicstaticvoidmain(String[]arg......
  • java-文件合并
    packagemerge;importjava.io.BufferedOutputStream;importjava.io.File;importjava.io.FileOutputStream;importjava.nio.file.Files;importjava.nio.file.Path;importjava.nio.file.Paths;importjava.util.ArrayList;publicclassMerge{publicstat......
  • Java期末复习暨学校第二次上机课作业
    Java期末复习暨学校第二次上机课作业:了解程序的控制结构,掌握顺序结构程序的设计方法,掌握分支程序设计方法。第一题:闰年有两种判断方式:(1):能被4整除但不能被100整除(2):能被400整除输出结果:第二题:一个三位数求和,分别先把百位、十位、个位的数求出来再相加。百位:用给出......
  • 新手入门Java自动化测试的利器:Selenium WebDriver
    今天我们将深入探讨一款强大的Java自动化测试工具——SeleniumWebDriver。在正式介绍SeleniumWebDriver之前,让我们首先对Selenium本身进行简要概述,以便更好地理解其背景和功能。官方学习网站:https://www.selenium.dev/Selenium是一个开源的自动化测试框架,WebDriver是其核心......
  • 华为OD机试2024年E卷-MVP争夺战[100分]( Java | Python3 | C++ | C语言 | JsNode | Go
    题目描述在星球争霸篮球赛对抗赛中,最大的宇宙战队希望每个人都能拿到MVP,MVP的条件是单场最高分得分获得者。可以并列所以宇宙战队决定在比赛中尽可能让更多队员上场,并且让所有得分的选手得分都相同,然而比赛过程中的每1分钟的得分都只能由某一个人包揽。输入描述输入第一行......
  • 华为OD机试2024年E卷-AI识别面板[100分]( Java | Python3 | C++ | C语言 | JsNode | Go
    题目描述AI识别到面板上有N(1≤N≤100)个指示灯,灯大小一样,任意两个之间无重叠。由于AI识别误差,每次别到的指示灯位置可能有差异,以4个坐标值描述AI识别的指示灯的大小和位置(左上角x1,y1,右下角x2,y2),请输出先行后列排序的指示灯的编号,排序规则:每次在尚未排序的灯中挑选最高的......
  • 深入理解 Java 反射与泛型:类型擦除与强制类型转换
    深入理解Java反射与泛型:类型擦除与强制类型转换在Java编程中,反射(Reflection)和泛型(Generics)是两个强大且常用的特性。反射允许我们在运行时检查和操作类、方法、字段等,而泛型则允许我们编写更加通用和类型安全的代码。然而,Java的泛型机制与类型擦除(TypeErasure)密切相关,这使......
  • [Javaee]网络原理-https协议
    前言前面的文章,我们着重介绍了http协议相关的知识。【Javaee】网络原理—http协议(一)-CSDN博客【Javaee】网络原理-http协议(二)-CSDN博客http存在着安全问题(如运营商劫持),针对http的安全问题,我们引入了https进行解决。下面,将详细介绍https协议目录 一.https协议是什么......
  • Playwright使用Typescript实现在测试case文件中调用另一个文件中的方法
    前提:(1)安装了nodejs(2)创建了测试目录(3)使用Vscode安装了Playwright插件可以参考官方文档:https://playwright.dev/docs/getting-started-vscode 在vscode界面最左侧的按钮选择Explorer,创建一个与tests目录同级的目录methods,并在methods目录下创建文件method1.ts,目录结构如......