当前位置: 首页 > news >正文

深圳做网站建设公司wordpress c2c

深圳做网站建设公司,wordpress c2c,自己做网站如何销售,网站排版怎么做基本思路#xff1a; 文件分割#xff1a;将一个文件分割成若干个独立的文件。 设置分割后小文件文件的字节数#xff0c;然后读取被分割文件#xff0c; 将对应的字节数写入分割后的小文件中。 使用seek定位下一次读取位置。 文件合并#xff1a;将分割后的若干的文件合并…基本思路 文件分割将一个文件分割成若干个独立的文件。        设置分割后小文件文件的字节数然后读取被分割文件      将对应的字节数写入分割后的小文件中。         使用seek定位下一次读取位置。       文件合并将分割后的若干的文件合并成一个完整的文件。      按照原有分割顺序逐个读取分割后的小文件      然后以追加的方式写入合并的文件中。   读取被分割文件将指定字节数写入分割后小文件时下一次读取时要确保当前读取位置是上一次的写入的终点。 例如文件有5000K设置分割后的文件大小1000K那么第一次从0开始读取1000K写入小文件1第二次就要从1000开始读取1000K写入小文件2. 这时就需要用到seek()不断设置文件读取位置。   seek是RandomAccessFile类中的函数 构造方法mode为设置读写方法“”r“为只读”w”为只写。     设置文件指针偏移量下一次读或写时从当前设置的位置开始。 readwrite方法与输入输出流函数相同。   import java.io.BufferedInputStream; import java.io.BufferedOutputStream; 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.OutputStream; import java.io.RandomAccessFile; import java.util.ArrayList; import java.util.List;public class FileSplit {private String filePath;//文件路径private long blockSize;//每一块大小private int blockNum;//块个个数private ListString blockName;//每一块名称private String [] name;public FileSplit(){this.blockName new ArrayListString();}public FileSplit(String filePath){this(filePath,1024);//未知的尺寸则默认1024}public FileSplit(String filePath, long blockSize){this();this.filePath filePath;this.blockSize blockSize;init();}public String getFilePath() {return filePath;}public void setFilePath(String filePath) {this.filePath filePath;}public long getBlockSize() {return blockSize;}public void setBlockSize(long blockSize) {this.blockSize blockSize;}public int getBlockNum() {return blockNum;}public void setBlockNum(int blockNum) {this.blockNum blockNum;}public ListString getBlockName() {return blockName;}public void setBlockName(ListString blockName) {this.blockName blockName;}private void initBlockName(String destPath){name new File(filePath).getName().split(\\.);for(int i 0; i blockNum; i){blockName.add(i,destPath \\ name[0] _ i . name[1]);}}public void init(){File src new File(filePath);//路径名不存在或该路径表示的文件不存,或是文件夹在则结束。if(filePath null || !src.exists()||src.isDirectory()){return;}if(blockSize src.length())this.blockSize src.length();this.blockNum (int)Math.ceil(src.length()*1.0/blockSize);}//destPath分割文件存放目录public void split(String destPath){//分割函数initBlockName(destPath);//初始化分割后的文件名long start 0;for(int i 0; i blockNum; i){if(i blockNum - 1)//计算最后一块大小blockSize new File(filePath).length()%blockSize;split_m(i,start,blockSize);//参数含义第i块读取位置读取内容大小start blockSize;//更新起始位置// System.out.println(start);}}//开始分割每次分割一块private void split_m(int blockNum,long start,long blockSize){int len 0;byte[] flush new byte[1024];RandomAccessFile raf null;//源文件BufferedOutputStream bos null;//分割后文件try {bos new BufferedOutputStream(new FileOutputStream(new File(blockName.get(blockNum))));raf new RandomAccessFile(new File(filePath),r);try {raf.seek(start);//确定读取位置while(-1 ! (len raf.read(flush))){//当前块分割完成或文件已读取完跳出循环。//System.out.printf(%d %d %d %s\n,start,blockSize,len,blockName.get(blockNum));if((blockSize - len) 0){//当前块大小-写入字节数判断剩余字节bos.write(flush,0,len);//如果块剩余大小大于读取字节数则写入读取字节数blockSize - len;}else{//如果小于则写入当前块剩余字节数bos.write(flush, 0, (int)blockSize);break;//分块文件已写满跳出当前循环}}bos.flush();bos.close();raf.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void Merge(String mergePath){//合并文件夹路径int len;byte[] flush new byte[1024];InputStream is null;OutputStream bos null;for(int i 0; i blockNum; i){try {//每次将一个分割后的文件写入合并文件中。//写入方法为追加bos new BufferedOutputStream(new FileOutputStream(new File(mergePath,merge. name[1]),true));is new BufferedInputStream(new FileInputStream(new File(blockName.get(i))));while(-1 ! (len is.read(flush))){//直到被分割的单个小文件读取完is.read(flush);//将读取内容放入flushbos.write(flush,0,len);//将读取内容写入文件。}bos.flush();bos.close();is.close();//释放当前资源下次读取下一个小文件。} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}} } public class Main {public static void main(String[] args){FileSplit f new FileSplit(F:\\依风\\Desktop\\temp.txt,500);//被分割文件分割后的字节数f.split(F:\\依风\\Desktop);//分割后小文件的存放位置f.Merge(F:\\依风\\Desktop);//合并后大文件的存放位置} } 转载于:https://www.cnblogs.com/huang-changfan/p/9908096.html
http://www.yutouwan.com/news/497061/

相关文章:

  • 网站网址有哪些知乎 php网站开发书籍_
  • 网站 建设设计什么网站有项目做
  • 武冈做网站网站代码怎么看
  • 合肥网站建设q479185700強官方网站怎么查询
  • 廊坊网站建设冀icp备wordpress 4.7.1
  • 长春做网站选长春万网音乐网站建设成本
  • 玉树电子商务网站建设哪家好wordpress+怎么迁移
  • 天津市住房和城乡建设局网站海南省住房城乡建设厅网站首页
  • 怎么做一购物网站WordPress网站hym地图
  • 医药网站建设需要注意点企业网站建设合同书标准版
  • 长春建一个网站大概要多少钱wordpress 鼠标 效果
  • 织梦cms发布侵权网站清单58同城网站建设思路
  • php零基础做网站森动网网站建设好吗
  • 网站前期建设建筑专业律师事务所
  • 网站 多服务器浙江杭州下沙做网站
  • 公共部门网站建设维护龙泉市住房和城乡建设局网站
  • 怎么做网站的关键词库大数据专业主要学什么
  • 淘宝客怎么做网站推广网站描述优化
  • 大学网站建设论文网站的建设包括那几个模块
  • 和平东路网站建设建一个大型网站多少钱
  • 个人微网站怎么做网页管理系统怎么制作
  • 那种类型的网站可以自己做也可以赚钱成都犀牛网站建设
  • 自助旅游网站开发分析报告广东专业的网站制作
  • 花样云做网站怎样网站开发与设计案例
  • 保护环境做网站素材主题库 wordpress
  • 电子商务网站建设规划书的内容校本教研网站建设方案
  • 在哪查网站备案久久建筑网会员登陆中心
  • 有了域名怎样做淘客网站天津电商网站开发
  • 中国建设银行行网站wordpress找不到页面
  • 企业门户网站建设方案及报价昆明中小企业网站建设