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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

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

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

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

//多余的另成一個文件

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字節",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開始,讀取到一個文件,就開始寫出到 eclipse.exe中,直到沒有文件可以讀

* @param folder

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

* @param fileName

* 需要合并的文件的名稱

* @throws FileNotFoundException

*/

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

try {

// 合并的目標文件

File destFile = new File(folder, fileName);

FileOutputStream fos = new FileOutputStream(destFile);

int index = 0;

while (true) {

//子文件

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

//如果子文件不存在了就結束

if (!eachFile.exists())

break;

//讀取子文件的內容

FileInputStream fis = new FileInputStream(eachFile);

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

fis.read(eachContent);

fis.close();

//把子文件的內容寫出去

fos.write(eachContent);

fos.flush();

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

}

fos.close();

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

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。