信息发布软件,b2b软件,广告发布软件

 找回密码
 立即注册
搜索
查看: 2818|回复: 2
打印 上一主题 下一主题

[『 Java 图文教程』] Java文件拆分器和软件多实例教程

  [复制链接]

774

主题

858

帖子

5500

积分

积分
5500
跳转到指定楼层
宣传软件楼主
发表于 2016-10-4 14:19:27 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

软件教程首图:

软件教程分类:Java 图文教程 

软件图文教程视频教程分类:软件图文教程 

软件教程难易程度:软件中级教程 

软件教程发布日期:2016-10-04

软件教程关键字:Java文件拆分

① 本信息收集于网络,如有不对的地方欢迎联系我纠正!
② 本信息免费收录,不存在价格的问题!
③ 如果您的网站也想这样出现在这里,请您加好友情链接,我当天会审核通过!

④友情链接关键字:软件定制网站 网址:http://www.postbbs.com

软件教程详细描述

工具类:

  import java.awt.FlowLayout;

  import java.awt.Toolkit;

  import java.awt.event.ActionListener;

  import java.io.File;

  import java.io.FileInputStream;

  import java.io.FileNotFoundException;

  import java.io.FileOutputStream;

  import java.io.IOException;

  import java.io.InputStream;

  import java.io.InputStreamReader;

  import javax.swing.JButton;

  import javax.swing.JFrame;

  import javax.swing.JPanel;

  public class FileSplitUtilClass {

  public static int data;//拆分的个数;

  public static String str;

  public static boolean split(File filePath,int number) {

  byte[] b=new byte[number];

  str=filePath.getAbsolutePath();

  int i=0;//创建文件

  try {

  FileInputStream file=new FileInputStream(filePath);

  try {

  while(file.read(b)!=-1){

  i++;

  FileOutputStream fileout=new FileOutputStream(str+i);

  fileout.write(b);

  }

  file.close();

  FileSplitUtilClass.data=i;

  filePath.delete();

  return true;

  }catch (IOException e) {

  // TODO Auto-generated catch block

  System.out.println("split error");

  e.printStackTrace();return false;

  }

  } catch (FileNotFoundException e) {

  // TODO Auto-generated catch block

  System.out.println("no find");

  e.printStackTrace();return false;

  }

  }


  ////////////////////////////////////////

  public static void fixFile(File filePath){

  byte[] b=new byte[1024];

  // String str=filePath.getAbsolutePath();

  int i=0;//创建文件

  try {

  FileOutputStream file=new FileOutputStream(filePath);

  try {

  System.out.println(FileSplitUtilClass.data);

  while(true&i<FileSplitUtilClass.data){

  i++;

  FileInputStream file1=new FileInputStream(FileSplitUtilClass.str+i);

  if(file1.read(b)!=-1){

  file.write(b);

  }else{

  break;

  }

  }

  }catch (IOException e) {

  // TODO Auto-generated catch block

  System.out.println("no file");

  e.printStackTrace();

  }

  } catch (FileNotFoundException e) {

  // TODO Auto-generated catch block

  System.out.println("failure");

  e.printStackTrace();

  }

  }

/////////////////////

  public static JFrame getJFrame(String JFrameName){

  JFrame jf=new JFrame(JFrameName);

  Toolkit tk=Toolkit.getDefaultToolkit();

  jf.setSize(500,330);

  jf.setLocation((tk.getScreenSize().width-jf.getWidth())/2,(tk.getScreenSize().height-jf.getHeight())/2);

  return jf;

  }

  //////////////////////////

  public static JPanel getJButton(String JButtonName1,String JButtonName2,Object obj){

  JPanel jp=new JPanel(new FlowLayout());

  JButton jb1=new JButton(JButtonName1);

  jb1.addActionListener((ActionListener) obj);

  JButton jb2=new JButton(JButtonName2);

  jb2.addActionListener((ActionListener)obj);

  jp.add(jb1);

  jp.add(jb2);

  return jp;

  }


  ///////////////////////////////////////

  }

  检测类:

  import java.awt.BorderLayout;

  import java.awt.FlowLayout;

  import java.awt.event.ActionEvent;

  import java.awt.event.ActionListener;

  import java.io.File;

  import javax.swing.JFileChooser;

  import javax.swing.JFrame;

  import javax.swing.JLabel;

  import javax.swing.JPanel;

  import javax.swing.JTextField;

  public class Split implements ActionListener {

  JFrame jf;JTextField jt;int number;

  public Split(){

  jf=FileSplitUtilClass.getJFrame("Filesplit");

  JPanel jp=FileSplitUtilClass.getJButton("拆分","组合", this);

  jt=new JTextField(10);

  JLabel jl=new JLabel("输入字节大小");

  JPanel jp1=new JPanel(new FlowLayout());

  jp1.add(jl);jp1.add(jt);

  jf.add(jp1,BorderLayout.CENTER);

  jf.add(jp,BorderLayout.SOUTH);

  jf.setVisible(true);

  javax.swing.JOptionPane.showMessageDialog(jf,"请输入字节");

  jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  }

  public void actionPerformed(ActionEvent arg0) {

  // TODO Auto-generated method stub

  String str=arg0.getActionCommand();

  if("拆分".equals(str)){

  JFileChooser jfc=new JFileChooser();

  jfc.showOpenDialog(null);//注意在这里的null表示对话框弹出的位置;

  if(jfc.showOpenDialog(null)==JFileChooser.APPROVE_OPTION){

  File filePath=jfc.getSelectedFile();

  if(FileSplitUtilClass.split(filePath,Integer.parseInt(jt.getText()))){

  javax.swing.JOptionPane.showMessageDialog(jf,"ok");

  }else{

  javax.swing.JOptionPane.showMessageDialog(jf,"fail");

  }


  }else{

  javax.swing.JOptionPane.showMessageDialog(jf,"你已经取消了");

  }

  }

  if("组合".equals(str)){

  JFileChooser jfc=new JFileChooser();

  jfc.showOpenDialog(null);//注意在这里的null表示对话框弹出的位置;

  if(jfc.showOpenDialog(null)==JFileChooser.APPROVE_OPTION){

  File filePath=jfc.getSelectedFile();

  FileSplitUtilClass.fixFile(filePath);

  javax.swing.JOptionPane.showMessageDialog(jf,"fixed ok");

  }else{

  javax.swing.JOptionPane.showMessageDialog(jf,"你已经取消了");

  }

  }

  }

  public static void main(String[] args){

  Split s=new Split();

  }

  }



untoJava编译过程与c/c++编译过程有何不同和多实例教程nextJava中的继承与访问修饰符的一些总结和多实例教吴王
回复

使用道具 举报

774

主题

858

帖子

5500

积分

积分
5500
信息发布软件沙发
 楼主| 发表于 2016-10-4 14:20:04 | 只看该作者
文件分割与合并是一个常见需求,比如:上传大文件时,可以先分割成小块,传到服务器后,再进行合并。很多高大上的分布式文件系统(比如:google的GFS、taobao的TFS)里,也是按block为单位,对文件进行分割或合并。
看下基本思路:
Java文件拆分器和软件多实例教程 b2b软件
如果有一个大文件,指定分割大小后(比如:按1M切割)
step 1:
先根据原始文件大小、分割大小,算出最终分割的小文件数N
step 2:
在磁盘上创建这N个小文件
step 3:
开多个线程(线程数=分割文件数),每个线程里,利用RandomAccessFile的seek功能,将读取指针定位到原文件里每一段的段首位置,然后向后读取指定大小(即:分割块大小),最终写入对应的分割文件,因为多线程并行处理,各写各的小文件,速度相对还是比较快的。

合并时,把上面的思路逆向处理即可。

核心代码:
分割处理:
Java文件拆分器和软件多实例教程 b2b软件 Java文件拆分器和软件多实例教程 b2b软件
1 /** 2      * 拆分文件 3      * @param fileName 待拆分的完整文件名 4      * @param byteSize 按多少字节大小拆分 5      * @return 拆分后的文件名列表 6      * @throws IOException 7      */ 8     public List<String> splitBySize(String fileName, int byteSize) 9             throws IOException {10         List<String> parts = new ArrayList<String>();11         File file = new File(fileName);12         int count = (int) Math.ceil(file.length() / (double) byteSize);13         int countLen = (count + "").length();14         ThreadPoolExecutor threadPool = new ThreadPoolExecutor(count,15                 count * 3, 1, TimeUnit.SECONDS,16                 new ArrayBlockingQueue<Runnable>(count * 2));17 18         for (int i = 0; i < count; i++) {19             String partFileName = file.getName() + "."20                     + leftPad((i + 1) + "", countLen, '0') + ".part";21             threadPool.execute(new SplitRunnable(byteSize, i * byteSize,22                     partFileName, file));23             parts.add(partFileName);24         }25         return parts;26     } Java文件拆分器和软件多实例教程 b2b软件


Java文件拆分器和软件多实例教程 b2b软件 Java文件拆分器和软件多实例教程 b2b软件
1 private class SplitRunnable implements Runnable { 2         int byteSize; 3         String partFileName; 4         File originFile; 5         int startPos; 6 7         public SplitRunnable(int byteSize, int startPos, String partFileName, 8                 File originFile) { 9             this.startPos = startPos;10             this.byteSize = byteSize;11             this.partFileName = partFileName;12             this.originFile = originFile;13         }14 15         public void run() {16             RandomAccessFile rFile;17             OutputStream os;18             try {19                 rFile = new RandomAccessFile(originFile, "r");20                 byte[] b = new byte[byteSize];21                 rFile.seek(startPos);// 移动指针到每“段”开头22                 int s = rFile.read(b);23                 os = new FileOutputStream(partFileName);24                 os.write(b, 0, s);25                 os.flush();26                 os.close();27             } catch (IOException e) {28                 e.printStackTrace();29             }30         }31     } Java文件拆分器和软件多实例教程 b2b软件


合并处理:
Java文件拆分器和软件多实例教程 b2b软件 Java文件拆分器和软件多实例教程 b2b软件
1 /** 2      * 合并文件 3      * 4      * @param dirPath 拆分文件所在目录名 5      * @param partFileSuffix 拆分文件后缀名 6      * @param partFileSize 拆分文件的字节数大小 7      * @param mergeFileName 合并后的文件名 8      * @throws IOException 9      */10     public void mergePartFiles(String dirPath, String partFileSuffix,11             int partFileSize, String mergeFileName) throws IOException {12         ArrayList<File> partFiles = FileUtil.getDirFiles(dirPath,13                 partFileSuffix);14         Collections.sort(partFiles, new FileComparator());15 16         RandomAccessFile randomAccessFile = new RandomAccessFile(mergeFileName,17                 "rw");18         randomAccessFile.setLength(partFileSize * (partFiles.size() - 1)19                 + partFiles.get(partFiles.size() - 1).length());20         randomAccessFile.close();21 22         ThreadPoolExecutor threadPool = new ThreadPoolExecutor(23                 partFiles.size(), partFiles.size() * 3, 1, TimeUnit.SECONDS,24                 new ArrayBlockingQueue<Runnable>(partFiles.size() * 2));25 26         for (int i = 0; i < partFiles.size(); i++) {27             threadPool.execute(new MergeRunnable(i * partFileSize,28                     mergeFileName, partFiles.get(i)));29         }30 31     } Java文件拆分器和软件多实例教程 b2b软件


Java文件拆分器和软件多实例教程 b2b软件 Java文件拆分器和软件多实例教程 b2b软件
1 private class MergeRunnable implements Runnable { 2         long startPos; 3         String mergeFileName; 4         File partFile; 5 6         public MergeRunnable(long startPos, String mergeFileName, File partFile) { 7             this.startPos = startPos; 8             this.mergeFileName = mergeFileName; 9             this.partFile = partFile;10         }11 12         public void run() {13             RandomAccessFile rFile;14             try {15                 rFile = new RandomAccessFile(mergeFileName, "rw");16                 rFile.seek(startPos);17                 FileInputStream fs = new FileInputStream(partFile);18                 byte[] b = new byte[fs.available()];19                 fs.read(b);20                 fs.close();21                 rFile.write(b);22                 rFile.close();23             } catch (IOException e) {24                 e.printStackTrace();25             }26         }27     } Java文件拆分器和软件多实例教程 b2b软件


为了方便文件操作,把关于文件读写的功能,全封装到FileUtil类:
Java文件拆分器和软件多实例教程 b2b软件 Java文件拆分器和软件多实例教程 b2b软件
  1 package com.cnblogs.yjmyzz;  2   3 import java.io.*;  4 import java.util.*;  5 import java.util.concurrent.*;  6   7 /**  8 * 文件处理辅助类  9 * 10 * @author yjmyzz@126.com 11 * @version 0.2 12 * @since 2014-11-17 13 * 14  */ 15 public class FileUtil { 16 17     /** 18      * 当前目录路径 19      */ 20     public static String currentWorkDir = System.getProperty("user.dir") + "\\"; 21 22     /** 23      * 左填充 24      * 25      * @param str 26      * @param length 27      * @param ch 28      * @return 29      */ 30     public static String leftPad(String str, int length, char ch) { 31         if (str.length() >= length) { 32             return str; 33         } 34         char[] chs = new char[length]; 35         Arrays.fill(chs, ch); 36         char[] src = str.toCharArray(); 37         System.arraycopy(src, 0, chs, length - src.length, src.length); 38         return new String(chs); 39 40     } 41 42     /** 43      * 删除文件 44      * 45      * @param fileName 46      *            待删除的完整文件名 47      * @return 48      */ 49     public static boolean delete(String fileName) { 50         boolean result = false; 51         File f = new File(fileName); 52         if (f.exists()) { 53             result = f.delete(); 54 55         } else { 56             result = true; 57         } 58         return result; 59     } 60 61     /*** 62      * 递归获取指定目录下的所有的文件(不包括文件夹) 63      * 64      * @param obj 65      * @return 66      */ 67     public static ArrayList<File> getAllFiles(String dirPath) { 68         File dir = new File(dirPath); 69 70         ArrayList<File> files = new ArrayList<File>(); 71 72         if (dir.isDirectory()) { 73             File[] fileArr = dir.listFiles(); 74             for (int i = 0; i < fileArr.length; i++) { 75                 File f = fileArr; 76                 if (f.isFile()) { 77                     files.add(f); 78                 } else { 79                     files.addAll(getAllFiles(f.getPath())); 80                 } 81             } 82         } 83         return files; 84     } 85 86     /** 87      * 获取指定目录下的所有文件(不包括子文件夹) 88      * 89      * @param dirPath 90      * @return 91      */ 92     public static ArrayList<File> getDirFiles(String dirPath) { 93         File path = new File(dirPath); 94         File[] fileArr = path.listFiles(); 95         ArrayList<File> files = new ArrayList<File>(); 96 97         for (File f : fileArr) { 98             if (f.isFile()) { 99                 files.add(f);100             }101         }102         return files;103     }104 105     /**106      * 获取指定目录下特定文件后缀名的文件列表(不包括子文件夹)107      * 108      * @param dirPath109      *            目录路径110      * @param suffix111      *            文件后缀112      * @return113      */114     public static ArrayList<File> getDirFiles(String dirPath,115             final String suffix) {116         File path = new File(dirPath);117         File[] fileArr = path.listFiles(new FilenameFilter() {118             public boolean accept(File dir, String name) {119                 String lowerName = name.toLowerCase();120                 String lowerSuffix = suffix.toLowerCase();121                 if (lowerName.endsWith(lowerSuffix)) {122                     return true;123                 }124                 return false;125             }126 127         });128         ArrayList<File> files = new ArrayList<File>();129 130         for (File f : fileArr) {131             if (f.isFile()) {132                 files.add(f);133             }134         }135         return files;136     }137 138     /**139      * 读取文件内容140      * 141      * @param fileName142      *            待读取的完整文件名143      * @return 文件内容144      * @throws IOException145      */146     public static String read(String fileName) throws IOException {147         File f = new File(fileName);148         FileInputStream fs = new FileInputStream(f);149         String result = null;150         byte[] b = new byte[fs.available()];151         fs.read(b);152         fs.close();153         result = new String(b);154         return result;155     }156 157     /**158      * 写文件159      * 160      * @param fileName161      *            目标文件名162      * @param fileContent163      *            写入的内容164      * @return165      * @throws IOException166      */167     public static boolean write(String fileName, String fileContent)168             throws IOException {169         boolean result = false;170         File f = new File(fileName);171         FileOutputStream fs = new FileOutputStream(f);172         byte[] b = fileContent.getBytes();173         fs.write(b);174         fs.flush();175         fs.close();176         result = true;177         return result;178     }179 180     /**181      * 追加内容到指定文件182      * 183      * @param fileName184      * @param fileContent185      * @return186      * @throws IOException187      */188     public static boolean append(String fileName, String fileContent)189             throws IOException {190         boolean result = false;191         File f = new File(fileName);192         if (f.exists()) {193             RandomAccessFile rFile = new RandomAccessFile(f, "rw");194             byte[] b = fileContent.getBytes();195             long originLen = f.length();196             rFile.setLength(originLen + b.length);197             rFile.seek(originLen);198             rFile.write(b);199             rFile.close();200         }201         result = true;202         return result;203     }204 205     /**206      * 拆分文件207      * 208      * @param fileName209      *            待拆分的完整文件名210      * @param byteSize211      *            按多少字节大小拆分212      * @return 拆分后的文件名列表213      * @throws IOException214      */215     public List<String> splitBySize(String fileName, int byteSize)216             throws IOException {217         List<String> parts = new ArrayList<String>();218         File file = new File(fileName);219         int count = (int) Math.ceil(file.length() / (double) byteSize);220         int countLen = (count + "").length();221         ThreadPoolExecutor threadPool = new ThreadPoolExecutor(count,222                 count * 3, 1, TimeUnit.SECONDS,223                 new ArrayBlockingQueue<Runnable>(count * 2));224 225         for (int i = 0; i < count; i++) {226             String partFileName = file.getName() + "."227                     + leftPad((i + 1) + "", countLen, '0') + ".part";228             threadPool.execute(new SplitRunnable(byteSize, i * byteSize,229                     partFileName, file));230             parts.add(partFileName);231         }232         return parts;233     }234 235     /**236      * 合并文件237      * 238      * @param dirPath239      *            拆分文件所在目录名240      * @param partFileSuffix241      *            拆分文件后缀名242      * @param partFileSize243      *            拆分文件的字节数大小244      * @param mergeFileName245      *            合并后的文件名246      * @throws IOException247      */248     public void mergePartFiles(String dirPath, String partFileSuffix,249             int partFileSize, String mergeFileName) throws IOException {250         ArrayList<File> partFiles = FileUtil.getDirFiles(dirPath,251                 partFileSuffix);252         Collections.sort(partFiles, new FileComparator());253 254         RandomAccessFile randomAccessFile = new RandomAccessFile(mergeFileName,255                 "rw");256         randomAccessFile.setLength(partFileSize * (partFiles.size() - 1)257                 + partFiles.get(partFiles.size() - 1).length());258         randomAccessFile.close();259 260         ThreadPoolExecutor threadPool = new ThreadPoolExecutor(261                 partFiles.size(), partFiles.size() * 3, 1, TimeUnit.SECONDS,262                 new ArrayBlockingQueue<Runnable>(partFiles.size() * 2));263 264         for (int i = 0; i < partFiles.size(); i++) {265             threadPool.execute(new MergeRunnable(i * partFileSize,266                     mergeFileName, partFiles.get(i)));267         }268 269     }270 271     /**272      * 根据文件名,比较文件273      * 274      * @author yjmyzz@126.com275      *276      */277     private class FileComparator implements Comparator<File> {278         public int compare(File o1, File o2) {279             return o1.getName().compareToIgnoreCase(o2.getName());280         }281     }282 283     /**284      * 分割处理Runnable285      * 286      * @author yjmyzz@126.com287      *288      */289     private class SplitRunnable implements Runnable {290         int byteSize;291         String partFileName;292         File originFile;293         int startPos;294 295         public SplitRunnable(int byteSize, int startPos, String partFileName,296                 File originFile) {297             this.startPos = startPos;298             this.byteSize = byteSize;299             this.partFileName = partFileName;300             this.originFile = originFile;301         }302 303         public void run() {304             RandomAccessFile rFile;305             OutputStream os;306             try {307                 rFile = new RandomAccessFile(originFile, "r");308                 byte[] b = new byte[byteSize];309                 rFile.seek(startPos);// 移动指针到每“段”开头310                 int s = rFile.read(b);311                 os = new FileOutputStream(partFileName);312                 os.write(b, 0, s);313                 os.flush();314                 os.close();315             } catch (IOException e) {316                 e.printStackTrace();317             }318         }319     }320 321     /**322      * 合并处理Runnable323      * 324      * @author yjmyzz@126.com325      *326      */327     private class MergeRunnable implements Runnable {328         long startPos;329         String mergeFileName;330         File partFile;331 332         public MergeRunnable(long startPos, String mergeFileName, File partFile) {333             this.startPos = startPos;334             this.mergeFileName = mergeFileName;335             this.partFile = partFile;336         }337 338         public void run() {339             RandomAccessFile rFile;340             try {341                 rFile = new RandomAccessFile(mergeFileName, "rw");342                 rFile.seek(startPos);343                 FileInputStream fs = new FileInputStream(partFile);344                 byte[] b = new byte[fs.available()];345                 fs.read(b);346                 fs.close();347                 rFile.write(b);348                 rFile.close();349             } catch (IOException e) {350                 e.printStackTrace();351             }352         }353     }354 355 } Java文件拆分器和软件多实例教程 b2b软件


单元测试:
Java文件拆分器和软件多实例教程 b2b软件 Java文件拆分器和软件多实例教程 b2b软件
1 package com.cnblogs.yjmyzz; 2 3 import java.io.IOException; 4 5 import org.junit.Test; 6 7 public class FileTest { 8 9     @Test10     public void writeFile() throws IOException, InterruptedException {11 12         System.out.println(FileUtil.currentWorkDir);13 14         StringBuilder sb = new StringBuilder();15 16         long originFileSize = 1024 * 1024 * 100;// 100M17         int blockFileSize = 1024 * 1024 * 15;// 15M18 19         // 生成一个大文件20         for (int i = 0; i < originFileSize; i++) {21             sb.append("A");22         }23 24         String fileName = FileUtil.currentWorkDir + "origin.myfile";25         System.out.println(fileName);26         System.out.println(FileUtil.write(fileName, sb.toString()));27 28         // 追加内容29         sb.setLength(0);30         sb.append("0123456789");31         FileUtil.append(fileName, sb.toString());32 33         FileUtil fileUtil = new FileUtil();34 35         // 将origin.myfile拆分36         fileUtil.splitBySize(fileName, blockFileSize);37 38         Thread.sleep(10000);// 稍等10秒,等前面的小文件全都写完39 40         // 合并成新文件41         fileUtil.mergePartFiles(FileUtil.currentWorkDir, ".part",42                 blockFileSize, FileUtil.currentWorkDir + "new.myfile");43 44     }45 } Java文件拆分器和软件多实例教程 b2b软件


Java文件拆分器和软件多实例教程 b2b软件





回复 支持 反对

使用道具 举报

774

主题

858

帖子

5500

积分

积分
5500
推广工具板凳
 楼主| 发表于 2016-10-4 14:21:16 | 只看该作者
多实例教程3

  • 【新建工程】

    Java文件拆分器和软件多实例教程 b2b软件
    Java文件拆分器和软件多实例教程 b2b软件
    Java文件拆分器和软件多实例教程 b2b软件

  • 2

    【创建类】

    Java文件拆分器和软件多实例教程 b2b软件
    Java文件拆分器和软件多实例教程 b2b软件

  • 3

    【编写文件分割方法】
    ////////////////////////////////////////////////////////////////////////////////
    //
    ////////////////////////////////////////////////////////////////////////////////
    public static void FileDivision(String fileName,int iSize){
    try {
    DataInputStream in=new DataInputStream(new FileInputStream(fileName));
    int fileSize=in.available();
    int iPart=0;
    int mod=0;
    iPart=fileSize/iSize;//分割成几部分
    mod=fileSize%iSize;//最后一部分
    //扩展名
    String ext=fileName.substring(fileName.lastIndexOf("."));
    for (int i = 0; i < iPart; i++) {
    byte[]buffer=new byte[iSize];
    in.read(buffer);
    String newName=fileName+i+ext;
    RandomAccessFile hFileWrite = new RandomAccessFile(newName,"rw");
    hFileWrite.write(buffer);
    hFileWrite.close();
    }
    if(mod>0){
    byte[]buffer=new byte[mod];
    in.read(buffer);
    String newName=fileName+iPart+ext;
    RandomAccessFile hFileWrite = new RandomAccessFile(newName,"rw");
    hFileWrite.write(buffer);
    hFileWrite.close();
    }
    in.close();
    } catch (Exception e) {
    }
    }

    Java文件拆分器和软件多实例教程 b2b软件

  • 4

    【编写文件合并方法】
    ////////////////////////////////////////////////////////////////////////////////
    //
    ////////////////////////////////////////////////////////////////////////////////
    public static void FileCombination(String ...fileName){
    try {
    String fileCom="合并后的文件.txt";
    RandomAccessFile hFileWrite = new RandomAccessFile(fileCom,"rw");
    for(int i=0;i<fileName.length;i++){
    DataInputStream in=new DataInputStream(new FileInputStream(fileName));
    int fileSize=in.available();
    byte[]buffer=new byte[fileSize];
    in.read(buffer);
    in.close();
    hFileWrite.write(buffer);
    }
    hFileWrite.close();
    } catch (Exception e) {
    }
    }

    Java文件拆分器和软件多实例教程 b2b软件

  • 5

    【编写主方法】
    public static void main(String[] args) {
    if (args[0].equals("0")) {
    //文件分割,命令行:java -jar fileDivCom.jar +0 +文件名 +分割大小
    FileDivision(args[1],Integer.parseInt(args[2])*1024);
    }else {
    //文件合并,命令行:java -jar fileDivCom.jar +1 +文件名1 + 文件名2 ....
    FileCombination(args);
    }
    }

    Java文件拆分器和软件多实例教程 b2b软件

  • 6

    【导出为可运行的jar文件】

    Java文件拆分器和软件多实例教程 b2b软件
    Java文件拆分器和软件多实例教程 b2b软件
    Java文件拆分器和软件多实例教程 b2b软件

  • 7

    【测试文件分割】

    Java文件拆分器和软件多实例教程 b2b软件

  • 8

    【测试文件合并】

    Java文件拆分器和软件多实例教程 b2b软件





回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读
信息发布软件AIWROK软件滑动方法集合示例
AIWROK软件滑动方法集合示例
信息发布软件AIWROK软件安卓AIWROK汇集软件点击
AIWROK软件安卓AIWROK汇集软件点击
信息发布软件苹果系统点击方法综合示例
苹果系统点击方法综合示例
信息发布软件AIWROK苹果系统找图方法完整示例集合
AIWROK苹果系统找图方法完整示例集合
信息发布软件苹果系统找图方法完整示例集合
苹果系统找图方法完整示例集合
信息发布软件苹果IOS系统找字OCR方法例子
苹果IOS系统找字OCR方法例子
信息发布软件AIWORK软件数组高级示例
AIWORK软件数组高级示例
信息发布软件AIWROK软件运算符封装库示例
AIWROK软件运算符封装库示例
信息发布软件AIWROK软件语法运行小示例
AIWROK软件语法运行小示例
信息发布软件AIWROK软件JS循环小示例
AIWROK软件JS循环小示例
信息发布软件AIWROK软件H5网页被主脚本获取值用法
AIWROK软件H5网页被主脚本获取值用法
信息发布软件AIWROK软件创建可暂停恢复的多线程任务
AIWROK软件创建可暂停恢复的多线程任务
信息发布软件AIWROK软件类型转换方法例子
AIWROK软件类型转换方法例子
信息发布软件AIWROK软件H5脚本执行与进度显示
AIWROK软件H5脚本执行与进度显示 .
信息发布软件AIWROK软件根据时间段执行异步任务支持多线程并行处理
AIWROK软件根据时间段执行异步任务支持多线程并行处理
信息发布软件H5自动开关执行脚本功能演示
H5自动开关执行脚本功能演示
信息发布软件AIWROK软件H5单选脚本运行示例
AIWROK软件H5单选脚本运行示例
信息发布软件H5任务脚本选择与执行中心
H5任务脚本选择与执行中心
信息发布软件H5里CheckBox控件演示
H5里CheckBox控件演示
信息发布软件AIWROK软件正则用法实际例子
AIWROK软件正则用法实际例子
信息发布软件AIWROK软件权限管理器实现
AIWROK软件权限管理器实现
信息发布软件AIWORK软件节点方法无碍示例子
AIWORK软件节点方法无碍示例子
信息发布软件JSON.stringify 和 JSON.parse 完整示例
JSON.stringify 和 JSON.parse 完整示例
信息发布软件AIWROK软件展示JavaScript各种语句标识符的用法
AIWROK软件展示JavaScript各种语句标识符的用法
信息发布软件JS巧妙地组合使用各种条件语句
JS巧妙地组合使用各种条件语句
信息发布软件AIWROK手机数据库MySQL数据库截图片批量上传操作脚本
AIWROK手机数据库MySQL数据库截图片批量上传操作脚本
信息发布软件HID中文输入智能打字功能
HID中文输入智能打字功能
信息发布软件AIWROK软件对象工具函数库例子
AIWROK软件对象工具函数库例子
信息发布软件AIWROK软件H5交互演示黄色主题
AIWROK软件H5交互演示黄色主题
信息发布软件H5单按钮执行脚本示例
H5单按钮执行脚本示例
信息发布软件苹果H5界面完整调用脚本示例
苹果H5界面完整调用脚本示例
信息发布软件AIWROK软件平台设备信息全面检测工具例子
AIWROK软件平台设备信息全面检测工具例子
信息发布软件AIWROK创建和放大日志窗口并展示动态内容
AIWROK创建和放大日志窗口并展示动态内容
信息发布软件AIWROK软件device相关方法获取设备信息例子
AIWROK软件device相关方法获取设备信息例子[/backcolor]
信息发布软件数据库MySQL实时内容随机调用
数据库MySQL实时内容随机调用
信息发布软件AIWROK软件分享一个特效苹果H5页面
AIWROK软件分享一个特效苹果H5页面
信息发布软件数据库MYQ业务流程心跳程序启动
数据库MYQ业务流程心跳程序启动
信息发布软件数据库MySQL功能支持创建表插入中文数据查询删除功能例子
数据库MySQL功能支持创建表插入中文数据查询删除功能例子
信息发布软件AIWROK软件Zip 高级操作复杂示例
AIWROK软件Zip 高级操作复杂示例
信息发布软件AIWROK软件txt_文件读写方法小结
AIWROK软件txt_文件读写方法小结
信息发布软件AIWROK软件file文件操作方法小结
AIWROK软件file文件操作方法小结
信息发布软件AIWORK软件配置读写H5演示配套脚本
AIWORK软件配置读写H5演示配套脚本
信息发布软件AIWROK配置读写功能演示示例
AIWROK配置读写功能演示示例
信息发布软件AIWROK截图缓存工具
AIWROK截图缓存工具
信息发布软件AIWROK线程许可证工具
AIWROK线程许可证工具
信息发布软件整理了AIWROK环境下常用的Date对象和sleep对象方法
整理了AIWROK环境下常用的Date对象和sleep对象方法
信息发布软件FastUI界面普通用法
FastUI界面普通用法
信息发布软件FastUI界面类[window]方法小结
FastUI界面类[window]方法小结 方法 1:close(关闭指定窗口)方法 2:closeAll(关闭所有窗口)方法 3:loadUI(加载 UI 界面)方法 4:onClose(监听窗口关闭事件)方法 5:onLoad(监听窗口加载事件)方法 6:setFull(设置窗口全屏)方法 7:setHeight(设置窗口高度)方法 8:setHidden(隐藏窗口)方法 9:setLeft(设置窗口 X 轴坐标)方法 10:setTop(设置窗口 Y 轴坐标)方法 11:setVisable(显示隐藏的窗口)方
信息发布软件AIWROK软件按钮监听UI界面与事件监听功能演示
AIWROK软件按钮监听UI界面与事件监听功能演示.
信息发布软件AWIROK软件多选[uiCheckBox]方法小结
AWIROK软件多选方法小结 方法一:findByID 加载多选控件方法二:getAllChecked 获取所有选中项方法三:getAllSelect 获取所有选项方法四:getChecked 获取某个选项是否选中方法五:setChecked 设置某个选项是否选中方法六:setCheckeds 设置多个选项是否选中方法七:setHeight 设置高度
信息发布软件AIWROK日志演示开启日志显示 → 放大 → 关闭代码
AIWROK日志演示开启日志显示 → 放大 → 关闭代码
信息发布软件&#127983;AIWROK数组方法高级应用案例
🏯AIWROK数组方法高级应用案例
信息发布软件AIWROK软件日志悬浮窗简化版自动切换位置
AIWROK软件日志悬浮窗简化版自动切换位置
信息发布软件AIWROK软件String实例演示
AIWROK软件String实例演示
信息发布软件AIWROK软件S内置String类[String]方法小结
AIWROK软件S内置String类[String]方法小结 方法 1:charAt[/backcolor]方法 2:charCodeAt[/backcolor]方法 3:indexOf[/backcolor]方法 4:lastIndexOf[/backcolor]方法 5:length[/backcolor]方法 6:match[/backcolor]方法 7:replace[/backcolor]方法 8:replaceAll[/backcolor]方法 9:split[/backcolor]方法 10:startsWith[/backcolor]方法 11:substr[/backcolor]方法 12:substring[/backcolor]方法 13:trim[/backcol
信息发布软件AIWROK软件完整的WebSocket客户端示例
这段代码是一个完整的WebSocket客户端示例,用于连接到指定的WebSocket服务器并处理各种事件。具体来说,代码的作用如下: 定义服务器地址:首先定义了一个服务器的IP地址和端口号 var ip = "154.37.221.104:8886";。 创建WebSocket对象:尝试创建一个新的WebSocket对象 var ws = new WebSocket();。注意,这里的 new ws() 应该是 new WebSocket()。 添加事件监听器:代码中尝试为WebSocket对象添加事件监听器,但这里有一个错误。
信息发布软件AIWROK软件苹果系统中实现四种基本滑动操作
AIWROK软件苹果系统中实现四种基本滑动操作
信息发布软件hid的滑动没有百分比坐标滑动吗
hid的滑动没有百分比坐标滑动吗
信息发布软件单选控件[uiRadioButton]方法小结
单选控件方法小结 方法 1:加载单选控件[/backcolor]方法 2:获取选中项[/backcolor]方法 3:设置高度[/backcolor]方法 4:设置选中项[/backcolor]
信息发布软件AIWROK软件无障碍触摸操作示例:点击、左右滑动、上下滑动实例
AIWROK软件无障碍触摸操作示例:点击、左右滑动、上下滑动实例
信息发布软件AIWROK软件安卓随机工具应用函数生成
AIWROK软件安卓随机工具应用函数生成
信息发布软件用在AIWORK软件代码中的实用符号分类整理2
用在AIWORK软件代码中的实用符号分类整理2 软件IDE用Emoji符号分类整理(含用途说明)一、表情与情感1. 微笑 [*]😀 笑脸(基础开心反馈,用于操作成功后的友好提示) [*]😃 笑脸大眼睛(强化开心情绪,用于重要任务完成后的积极反馈) [*]😄 笑脸和微笑的眼睛(温和友好的状态,用于日常交互中的正向回应) [*]😁 带着微笑的眼睛(轻松愉悦的反馈,用于轻度成功或趣味操作) [*]
信息发布软件AIWROK软件图像二值化的各种方法和应用场景
AIWROK软件图像二值化的各种方法和应用场景
信息发布软件AIWROK软件找图区分页面变化和卡死状态
AIWROK软件找图区分页面变化和卡死状态
信息发布软件AIWROK苹果系统Map 数据管理[map]小结
AIWROK苹果系统Map 数据管理[map]小结 方法一:add(添加键值对)[/backcolor]方法二:delete(删除指定键值对)[/backcolor]方法三:clear(清空所有键值对)[/backcolor]方法四:get(根据键获取值)[/backcolor]方法五:getAllValue(获取所有值)[/backcolor]方法六:toString(转换为字符串)[/backcolor]完整示例:

QQ|( 京ICP备09078825号 )

本网站信息发布软件,是可以发布论坛,发送信息到各大博客,各大b2b软件自动发布,好不夸张的说:只要手工能发在电脑打开IE能发的网站,用这个宣传软件就可以仿制动作,进行推送发到您想发送的B2B网站或是信息发布平台上,不管是后台,还是前台,都可以进行最方便的广告发布,这个广告发布软件,可以按月购买,还可以试用软件,对网站的验证码也可以完全自动对信息发布,让客户自动找上门,使企业轻松实现b2b发布,这个信息发布软件,均是本站原创正版开发,拥有正版的血统,想要新功能,欢迎提意见给我,一好的分类信息群发软件在手,舍我其谁。QQ896757558

GMT+8, 2026-2-4 14:12 , Processed in 1.579376 second(s), 50 queries .

宣传软件--信息发布软件--b2b软件广告发布软件

快速回复 返回顶部 返回列表