Source Code : File Splitter
Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com.
Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com.
Click Here or search from google with Libraries Name you get jar file related it
File Splitter
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
//package com.power.utils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.LinkedList;
import java.util.Scanner;
/**
*
* @author f6036477
*/
public class FileSplitter {
private File f;
public FileSplitter(File f) {
if (f == null)
throw new IllegalArgumentException("File must be not null!");
this.f = f;
System.out.println("File Length (KB): " + f.length() / 1024.0);
}
public boolean split(long size) {
if (size <= 0)
return false;
try {
int parts = ((int) (f.length() / size));
long flength = 0;
if (f.length() % size > 0)
parts++;
File[] fparts = new File[parts];
FileInputStream fis = new FileInputStream(f);
FileOutputStream fos = null;
for (int i = 0; i < fparts.length; i++) {
fparts[i] = new File(f.getPath() + ".part." + i);
fos = new FileOutputStream(fparts[i]);
int read = 0;
long total = 0;
byte[] buff = new byte[1024];
int origbuff = buff.length;
while (total < size) {
read = fis.read(buff);
if (read != -1) {
buff = FileEncoder.invertBuffer(buff, 0, read);
total += read;
flength += read;
fos.write(buff, 0, read);
}
if (i == fparts.length - 1 && read < origbuff)
break;
}
fos.flush();
fos.close();
fos = null;
}
fis.close();
// f.delete();
f = fparts[0];
System.out.println("Length Readed (KB): " + flength / 1024.0);
return true;
} catch (Exception ex) {
System.out.println(ex);
System.out.println(ex.getLocalizedMessage());
System.out.println(ex.getStackTrace()[0].getLineNumber());
ex.printStackTrace();
return false;
}
}
public boolean split(int parts) {
if (parts <= 0)
return false;
return this.split(f.length() / parts);
}
public boolean unsplit() {
try {
LinkedList<File> list = new LinkedList<File>();
boolean exists = true;
File temp = null;
File dest = new File(f.getPath().substring(0,
f.getPath().lastIndexOf(".part")));
FileInputStream fis = null;
FileOutputStream fos = new FileOutputStream(dest);
int part = 0;
long flength = 0;
String name = null;
while (exists) {
name = f.getPath();
name = name.substring(0, name.lastIndexOf(".") + 1) + part;
temp = new File(name);
exists = temp.exists();
if (!exists)
break;
fis = new FileInputStream(temp);
byte[] buff = new byte[1024];
int read = 0;
while ((read = fis.read(buff)) > 0) {
buff = FileEncoder.invertBuffer(buff, 0, read);
fos.write(buff, 0, read);
if (read > 0)
flength += read;
}
fis.close();
fis = null;
temp.delete();
part++;
}
fos.flush();
fos.close();
f = dest;
System.out.println("Length Writed: " + flength / 1024.0);
return true;
} catch (Exception ex) {
ex.printStackTrace();
return false;
}
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Split? [true/false]: ");
boolean split = Boolean.parseBoolean(scan.next());
if (split) {
File file = new File("T:/Java/com/power/nb/visual/dist/visual.zip");
FileSplitter splitter = new FileSplitter(file);
System.out.println("splitter.split(3): " + splitter.split(3));
} else {
File file = new File(
"T:/Java/com/power/nb/visual/dist/visual.zip.part.0");
FileSplitter splitter = new FileSplitter(file);
System.out.println("splitter.unsplit(): " + splitter.unsplit());
}
}
}
class FileEncoder {
private File f;
public FileEncoder(File f) {
if (f == null)
throw new IllegalArgumentException("File must be not null!");
this.f = f;
}
public boolean encode() {
try {
File temp = new File(f.getPath() + ".tmp");
FileInputStream fis = new FileInputStream(f);
FileOutputStream fos = new FileOutputStream(temp);
byte[] buff = new byte[1024];
int read = 0;
while ((read = fis.read(buff)) > 0) {
buff = FileEncoder.invertBuffer(buff, 0, read);
fos.write(buff, 0, read);
}
fis.close();
fos.flush();
fos.close();
f.delete();
temp.renameTo(f);
f = temp;
return true;
} catch (Exception ex) {
ex.printStackTrace();
return false;
}
}
public static byte[] invertBuffer(byte[] buff, int offset, int length) {
if (buff == null || buff.length == 0)
return null;
if (offset < 0 || length < 0)
return null;
byte[] inverted = new byte[length];
int ind = length - 1;
for (int i = offset; i < length; i++) {
inverted[ind] = buff[i];
ind--;
}
return inverted;
}
public boolean decode() {
return this.encode();
}
public static void main(String[] args) {
File file = new File("T:/Java/com/power/nb/visual/dist/visual.zip");
FileEncoder enc = new FileEncoder(file);
System.out.println("enc.decode(): " + enc.decode());
}
}
Thank with us