Reqmt : The input file will have a some text, each text delimited by a '$' sign. We need to separate each text to a new file, each new file is appended by'-1', '-2' depending on teh no. of texts it has. If the file has only one text message the original name should remain intact. We need to push the new files into a new path and delete the original ones from the input folder.
public class SplitFile {
public static void main(String[] args) {
/*args = new String[2];
args[0] = "C:/HOMEWARE/reports/swift/"; // input file path
args[1] = "C:/HOMEWARE/reports/extract/"; // output file path*/
try {
File directory = new File(args[0]);
/*Get the list of files in the swift directory*/
String filename[] = directory.list();
String listFilenames=null;
String inputFileName;
String outputFileName;
StringBuffer contents;
/*Iterate the directory for each SWIFT file*/
for (int i = 0; i < filename.length; i++) {
listFilenames = filename[i];
inputFileName=args[0]+listFilenames;
outputFileName=args[1]+listFilenames;
String line = null;
contents=new StringBuffer();
/*Return if the file is not available*/
File is = new File(inputFileName);
if(!is.exists()){
System.err.println("File " + inputFileName+ " not present to begin with!");
break;
}
BufferedReader input = new BufferedReader(new FileReader(inputFileName));
/*Get the contents of the file*/
while (( line = input.readLine()) != null){
contents.append(line);
contents.append(System.getProperty("line.separator"));
}
input.close();
/*Separate each SWIFT message based on the delimiter '$'*/
int count=0;
if(null != contents && contents.length() >0) {
FileOutputStream fop = null;
String str= null;
StringTokenizer token = new StringTokenizer(contents.toString(),"$");
while(token.hasMoreTokens()){
str= token.nextToken().toString();
if(!("\r\n".equals(str))){
count++;
fop = new FileOutputStream(outputFileName + "-"+ count);
fop.write(str.getBytes());
}
}
fop.flush();
fop.close();
}
/*If the file contains only one swift messasge, rename the file to its original name*/
if(count == 1){
File renameFile = new File(outputFileName + "-"+ count);
renameFile.renameTo(new File(outputFileName));
}
/*Delete the original file*/
System.out.println("inputFileName :"+inputFileName);
if(is.delete()){
System.out.println("** File " + inputFileName+ " deleted **");
}else{
System.err.println("Failed to delete " + inputFileName);
}
}
} catch (FileNotFoundException e) {
System.out.println("File not present to begin with!");
e.printStackTrace();
}catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("Request not completed due to technical issues. Please contact IT team");
}
}
}
Wednesday, May 26, 2010
Monday, March 22, 2010
java.lang.UnsupportedClassVersionError (Unsupported major.minor version 49.0)
It is caused when the java compiler is not compatible with the code.
Goto Project Proprties -> java Compiler and check your jdk version.
Should solve the problem
Goto Project Proprties -> java Compiler and check your jdk version.
Should solve the problem
Tuesday, January 26, 2010
javax.faces.FacesException: java.lang.ClassNotFoundException: [Ljava.lang.String
I got this error soon after I changed my jdk version to 1.6.
Turned out - since I'm using jdk1.6 unlike 1.5 it will not attempt to load class (java.lang.String) by name by default, hence the exception.
is easily solvable by locating JVM runtime in Eclipse's preferences.
(Window->Preferences->Installed JREs)
now add -Dsun.lang.ClassLoader.allowArraySyntax=true to your VM Arguments.The error shouldn't persist anymore.
Turned out - since I'm using jdk1.6 unlike 1.5 it will not attempt to load class (java.lang.String) by name by default, hence the exception.
is easily solvable by locating JVM runtime in Eclipse's preferences.
(Window->Preferences->Installed JREs)
now add -Dsun.lang.ClassLoader.allowArraySyntax=true to your VM Arguments.The error shouldn't persist anymore.
Subscribe to:
Posts (Atom)
REFACTORING
What is Refactoring? A software is built initially to serve a purpose, or address a need. But there is always a need for enhancement, fixin...
-
Both SAX and DOM are used to parse the XML document. Both has advantages and disadvantages and can be used in our programming depending on t...
-
If you have ever filled an online form, you are bound to have encountered a CAPTCHA. CAPTCHA stands for Completely Automated Public Turin...
-
This is not my typical technical article, just a little restrospective of an experience at work. I was working with a new member in the t...