zoukankan      html  css  js  c++  java
  • Java-->分割文件

    --> 通过IO 流将一个文件分割成多份

    package com.dragon.java.splitfile;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Scanner;
    
    /*
     * 分割文件
     */
    public class Test {
        public static void main(String[] args) throws IOException {
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入要分割的文件路径:");
            File file = new File(scanner.next());
            System.out.println("请输入要分割的份数:");
            int n = scanner.nextInt();
    
            // 创建文件夹存放分割后的文件
            // File parentDir = new File(file.getParent());
            File dir = new File(file.getParent(), "split"); // 创建文件夹存放分割后的文件
            dir.mkdir();
    
            // 每一段的大小,加 1 为防止数据的丢失
            long partLength = file.length() / n + 1;
            FileInputStream fis = new FileInputStream(file);
            for (int i = 1; i < n + 1; i++) {
                // 定义输出流到子文件中,并设置子文件名
                FileOutputStream fos = new FileOutputStream(new File(dir, "part"
                        + i + "." + file.getName().split("\.")[1])); // 定义输出流到子文件中
    
                byte[] buffer = new byte[(int) partLength];
                int len = fis.read(buffer);
                // 将数据写到子文件中
                fos.write(buffer, 0, len);
                fos.close();
            }
            fis.close();
            // 若想要修改文件夹的名字,前提是修改的路径名之前是不存在的
            // file.delete(); // 删除原文件
            // dir.renameTo(file.getParentFile()); // 修改文件夹的名字
        }
    }

    --> 本来想用这个方法切割一个图片文件,结果发现只有第一份成功,其他的都无效了...

    --> 一个图片里面包含的数据字节,包含开始、结束等多种信息,所以即使将所以字节分割成多份,还是会有无效的子文件。

  • 相关阅读:
    jquery 锚点跳转、滚动导航菜单和返回顶部
    jQuery attr方法-获得修改元素属性值
    layui中的tab选项卡,循环多个选项卡后不出现折叠的解决方法
    获取地址url的参数值
    vant的tab选项卡的点击事件传参
    css选择器
    jquery实现换一批内容
    letter-spacing 字体间距
    jquery 隔行变色
    Redis与Memcached的区别
  • 原文地址:https://www.cnblogs.com/xmcx1995/p/5779703.html
Copyright © 2011-2022 走看看