Here is a file splitter made in java . try it with files. Don't try it with directory. It will not respond in the way u want.
Splitter class
SplitListOnly class
SplitFiles class to split the files
OnlyExt filters the file from folders and other objects like Shortcuts / links / Special folders.
Included in the attachment the class files as well.
Splitter class
Code: JAVA
import java.io.*;
class Splitter
{
public static void main(String[] args) throws IOException
{
takeInput(args);
}
static void takeInput(String[] args) throws IOException
{
String str;
String assembledFileName;
int splitLength;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
try
{
if(args.length==0)
{
System.out.println("Enter the filename:");
str=br.readLine();
System.out.println("Enter the name of the file after assembling(without extension):");
assembledFileName=br.readLine();
System.out.println("Enter the split size:");
splitLength=Integer.parseInt(br.readLine());
SplitFiles ob1=new SplitFiles(str,splitLength);
SplitListOnly ob2=new SplitListOnly(str,assembledFileName);
ob2.batchFileMaker();
}
else if(args.length>1)
{
System.out.println("Invalid arguments.");
System.exit(1);
}
}
catch(NumberFormatException e)
{
System.out.println("Problem in number format...");
e.printStackTrace();
}
}
}
Code: JAVA
import java.io.*;
import java.util.*;
class SplitListOnly
{
File f1;
File f2;
String[] s;
String str;
String assembledFileName;
SplitListOnly(String fileName,String assembledFileName) throws IOException
{
try
{
f1=new File(fileName);
f2=new File(f1.getParent());
this.assembledFileName=assembledFileName;
FilenameFilter only=new OnlyExt("spt",f1.getName());
s=f2.list(only);
}
catch(Exception e)
{
System.out.println("Exception occurred in SplitListOnly(String fileName,String assembledFileName) constructor.");
e.printStackTrace();
}
}
void batchFileMaker()
{
try
{
FileWriter fw=new FileWriter(f2.getPath()+"\\"+"Assemble.bat");
fw.write("@echo off\n");
fw.write("copy /B ");
for(int i=0;i<s.length;i++)
{
str=new String(f1.getPath()+"."+(i+1)+".spt");
fw.write(str);
if((i+1)<s.length)
fw.write("+");
}
str=(f1.getName()).substring((f1.getName()).indexOf(".")+1,(f1.getName()).length());
fw.write(" "+f2.getPath()+"\\"+assembledFileName+"."+str);
fw.write("\necho The files have been assembelled successfully..........");
fw.write("\npause");
fw.close();
}
catch(Exception e)
{
System.out.println("Exception occurred in void batchFileMaker() method.");
e.printStackTrace();
}
}
}
Code: JAVA
import java.io.*;
class SplitFiles
{
FileInputStream fin;
FileOutputStream fout;
int len;
int splitlen;
String str;
SplitFiles(String fileName,int splitlength)
{
try
{
fin=new FileInputStream(fileName);
str=fileName;
len=0;
splitlen=splitlength;
Split();
}
catch(FileNotFoundException e)
{
System.out.println("File not found.");
}
catch(IOException e)
{
System.out.println("IOException generated");
}
}
void Split()
{
try
{
int i=0;
FileInputStream fin=new FileInputStream(str);
int c=fin.read();
while(c!=-1)
{
FileOutputStream fw=new FileOutputStream(str+"."+(i+1)+".spt");
while(c!=-1 && len<splitlen)
{
fw.write(c);
c=fin.read();
len++;
}
len=0;
fw.close();
i++;
}
}
catch(Exception e)
{
System.out.println("gg");
e.printStackTrace();
}
}
}
Code: JAVA
import java.io.*;
public class OnlyExt implements FilenameFilter
{
String ext,fileName;
OnlyExt(String ext,String fileName)
{
try
{
this.ext="."+ext;
this.fileName=fileName;
}
catch(Exception e)
{
System.out.println("Exception occurred in OnlyExt(String ext,String fileName) +construcctor.");
}
}
public boolean accept(File dir,String name)
{
return name.endsWith(ext) && name.startsWith(fileName);
}
}


