最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實(shí)現(xiàn)文件分割和文件合并實(shí)例

 更新時(shí)間:2017年08月01日 08:50:55   作者:左世鈺  
本篇文章主要介紹了Java實(shí)現(xiàn)文件分割和文件合并實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

文件切割和文件合并這個(gè)問(wèn)題困擾了我有一段時(shí)間了(超過(guò)一天沒(méi)做粗來(lái))。

找了好多博客,本來(lái)想轉(zhuǎn)載一個(gè)來(lái)的 結(jié)果找不到了。很無(wú)奈。

只好自己貼代碼上了。

當(dāng)然我會(huì)盡力好好寫注釋的。

文件切割器:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Scanner;

public class Main {
 public static void main(String[] args) throws FileNotFoundException, IOException {
  File sourceFile = new File("ping.mp3");
//  System.out.println(sourceFile.exists());
  Scanner scanner = new Scanner(System.in);
  int numberOfPieces = 1;  //默認(rèn)文件切割的數(shù)量
  System.out.println("Enter:");  //提示輸入
  numberOfPieces = scanner.nextInt();  //輸入
  scanner.close();  //輸入后就關(guān)閉 裝完逼就跑一個(gè)道理
  long fileLength = sourceFile.length() / numberOfPieces;  //分一下每一個(gè)小文件的大小
  byte[] b = new byte[1024];  //這個(gè)不解釋 如果看不懂 就去看IO流去吧
  RandomAccessFile raf1 = new RandomAccessFile(sourceFile, "r");  
  int len = -1;
  for(int i = 0; i < numberOfPieces; i++) {
   String name = sourceFile.getName() + "." + (i+1);
   File file = new File(name);
   file.createNewFile();
   RandomAccessFile raf2 = new RandomAccessFile(file, "rw");
   while((len = raf1.read(b)) != -1) {
    raf2.write(b, 0, len);  //我覺(jué)的這樣寫比raf2.write(b);高明一些
    if(raf2.length() > fileLength)  //如果太大了就不在這個(gè)子文件寫了 換下一個(gè)
     break;
   }
   raf2.close();
  }
  raf1.close();
 }
}

文件合并器:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

//文件合并 ping.n
public class Main {
 public static void main(String[] args) throws FileNotFoundException, IOException {
  File[] files = new File[10];
  String name = "ping.";
  File file = new File("ping.mp3");
  file.createNewFile();
  RandomAccessFile in = new RandomAccessFile(file, "rw");
  in.setLength(0);
  in.seek(0);
  byte[] bytes = new byte[1024];
  int len = -1;
  for(int i = 0; i < files.length; i++) {
   files[i] = new File(name + (i + 1));
   //System.out.println(files[i].exists());
   RandomAccessFile out = new RandomAccessFile(files[i], "rw");
   while((len = out.read(bytes)) != -1) {
    in.write(bytes, 0, len);
   }
   out.close();
  }
  in.close();
 }
}

文件合并器就不寫注釋了,因?yàn)檫@是一個(gè)逆過(guò)程。(懶癌附體)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java實(shí)現(xiàn)菜單樹(shù)的示例代碼

    java實(shí)現(xiàn)菜單樹(shù)的示例代碼

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)菜單樹(shù)的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • Mybatis代碼生成器Mybatis Generator(MBG)實(shí)戰(zhàn)詳解

    Mybatis代碼生成器Mybatis Generator(MBG)實(shí)戰(zhàn)詳解

    本文我們主要實(shí)戰(zhàn)Mybatis官方的代碼生成器:Mybatis Generator(MBG),掌握它以后,可以簡(jiǎn)化大部分手寫代碼,我們只需要寫復(fù)雜邏輯代碼,需要的朋友可以參考下
    2023-05-05
  • java如何確定一個(gè)鏈表有環(huán)及入口節(jié)點(diǎn)

    java如何確定一個(gè)鏈表有環(huán)及入口節(jié)點(diǎn)

    這篇文章主要介紹了java如何確定一個(gè)鏈表有環(huán)及入口節(jié)點(diǎn),想了解數(shù)據(jù)結(jié)構(gòu)的同學(xué)可以參考下
    2021-04-04
  • Spring純注解開(kāi)發(fā)模式讓開(kāi)發(fā)簡(jiǎn)化更簡(jiǎn)化

    Spring純注解開(kāi)發(fā)模式讓開(kāi)發(fā)簡(jiǎn)化更簡(jiǎn)化

    Spring3.0引入了純注解開(kāi)發(fā)的模式,框架的誕生是為了簡(jiǎn)化開(kāi)發(fā),那注解開(kāi)發(fā)就是簡(jiǎn)化再簡(jiǎn)化。Spring的特性在整合MyBatis方面體現(xiàn)的淋漓盡致哦
    2022-08-08
  • 使用Spring AOP做接口權(quán)限校驗(yàn)和日志記錄

    使用Spring AOP做接口權(quán)限校驗(yàn)和日志記錄

    本文介紹了面向切面編程(AOP)的基本概念、應(yīng)用場(chǎng)景及其在Spring中的實(shí)現(xiàn)原理,通過(guò)AOP,可以方便地在不修改原有代碼的情況下,實(shí)現(xiàn)日志記錄、權(quán)限校驗(yàn)等功能,以學(xué)生身份證號(hào)查詢接口為例,展示了如何定義權(quán)限注解、切面類以及權(quán)限驗(yàn)證服務(wù),感興趣的朋友一起看看吧
    2025-01-01
  • java基于C/S結(jié)構(gòu)實(shí)現(xiàn)多線程聊天室

    java基于C/S結(jié)構(gòu)實(shí)現(xiàn)多線程聊天室

    這篇文章主要為大家詳細(xì)介紹了java基于C/S結(jié)構(gòu)實(shí)現(xiàn)多線程聊天室,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Java 集合去重的三種方法

    Java 集合去重的三種方法

    本主要介紹了Java 集合去重的三種方法,包含HashSet,Stream API和手動(dòng)遍歷并使用Map三種,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • 如何將IDEA打成jar包并在windows后臺(tái)運(yùn)行

    如何將IDEA打成jar包并在windows后臺(tái)運(yùn)行

    在本篇文章里小編給大家分享的是關(guān)于如何將IDEA打成jar包并在windows后臺(tái)運(yùn)行知識(shí)點(diǎn),需要的朋友們可以學(xué)習(xí)參考下。
    2019-08-08
  • Java的MyBatis快速入門和實(shí)戰(zhàn)詳解

    Java的MyBatis快速入門和實(shí)戰(zhàn)詳解

    這篇文章主要介紹了Java的MyBatis快速入門和實(shí)戰(zhàn)詳解,MyBatis是一款優(yōu)秀的持久層框架,用于簡(jiǎn)化JDBC開(kāi)發(fā),是一套可重用的,通用的,軟件基礎(chǔ)代碼模型,需要的朋友可以參考下
    2023-05-05
  • Java基礎(chǔ)之文件概述

    Java基礎(chǔ)之文件概述

    這篇文章主要介紹了Java基礎(chǔ)之文件概述,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有一定的幫助,需要的朋友可以參考下
    2021-05-05

最新評(píng)論

四平市| 唐河县| 肥东县| 邢台市| 息烽县| 延寿县| 铜陵市| 比如县| 临城县| 时尚| 霍州市| 阜阳市| 白玉县| 宜兰市| 金平| 大城县| 武邑县| 景东| 新平| 八宿县| 玛沁县| 东兰县| 宜黄县| 九江县| 奈曼旗| 咸阳市| 崇州市| 宜良县| 云南省| 连平县| 林州市| 香河县| 共和县| 大悟县| 邳州市| 福泉市| 宣恩县| 潞城市| 长寿区| 邯郸县| 巴东县|