日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

java 输入流可以合并吗_HOW2J Java 文件输入输出流,合并与拆分

發(fā)布時(shí)間:2023/11/27 生活经验 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 输入流可以合并吗_HOW2J Java 文件输入输出流,合并与拆分 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

//需要所指目錄下確有一個(gè)文件供拆分

//多余的另成一個(gè)文件

package File;

import java.util.*;

import java.io.*;

public class TestStrem{

public static void main(String[] args) {

int eachSize=100*1024//100k;

File scrFile = new File("d:/javaha/gys.txt");

splitFile(scrFile,eachSize);

}

public static void splitFile(File scrFile,int eachSize) {

if(0==scrFile.length())

throw new RuntimeException("文件長度為0,不可拆分");

byte[] fileConent = new byte[(int)scrFile.length()];

try {

FileInputStream fis =new FileInputStream(scrFile);

fis.read(fileConent);

fis.close();

}

catch(IOException e) {

e.printStackTrace();

}

int fileNumber;

if(fileConent.length % eachSize==0)

fileNumber =(int)(fileConent.length / eachSize);

else

fileNumber =(int)(fileConent.length / eachSize )+ 1;

for(int i=0;i

String eachFilename=scrFile.getName()+"-"+ i;

File eachFile =new File(scrFile.getParent(),eachFilename);

byte[] eachContent;

if(i!=fileNumber-1)

eachContent =Arrays.copyOfRange(fileConent, eachSize*i , eachSize);

else

eachContent =Arrays.copyOfRange(fileConent, eachSize*i , fileConent.length);

try {

FileOutputStream fos =new FileOutputStream(eachFile);

fos.write(eachContent);

fos.close();

System.out.format("輸出子文件%s,其大小是%d字節(jié)",eachFile.getAbsolutePath(),eachFile.length());

}catch(IOException e) {

e.printStackTrace();

}

}

}

}

//合并,

package stream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import javax.security.auth.DestroyFailedException;

public class TestStream {

public static void main(String[] args) {

murgeFile("d:/", "eclipse.exe");

}

/**

* 合并的思路,就是從eclipse.exe-0開始,讀取到一個(gè)文件,就開始寫出到 eclipse.exe中,直到?jīng)]有文件可以讀

* @param folder

* 需要合并的文件所處于的目錄

* @param fileName

* 需要合并的文件的名稱

* @throws FileNotFoundException

*/

private static void murgeFile(String folder, String fileName) {

try {

// 合并的目標(biāo)文件

File destFile = new File(folder, fileName);

FileOutputStream fos = new FileOutputStream(destFile);

int index = 0;

while (true) {

//子文件

File eachFile = new File(folder, fileName + "-" + index++);

//如果子文件不存在了就結(jié)束

if (!eachFile.exists())

break;

//讀取子文件的內(nèi)容

FileInputStream fis = new FileInputStream(eachFile);

byte[] eachContent = new byte[(int) eachFile.length()];

fis.read(eachContent);

fis.close();

//把子文件的內(nèi)容寫出去

fos.write(eachContent);

fos.flush();

System.out.printf("把子文件 %s寫出到目標(biāo)文件中%n",eachFile);

}

fos.close();

System.out.printf("最后目標(biāo)文件的大小:%,d字節(jié)" , destFile.length());

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

總結(jié)

以上是生活随笔為你收集整理的java 输入流可以合并吗_HOW2J Java 文件输入输出流,合并与拆分的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。