Re: Problem with Copying and Renaming File once it reaches a limit
@Lew: I will still wait to hear your thoughts. I untangled this code.
Here it is for anyone who wants to use it :
***********************
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.text.*;
import java.util.Calendar;
import java.util.Date;
import java.util.regex.*;
public class DbLog{
/**
This class will append all the dblogs in a file upto the specified
size.
After which the contents will be copied into another file, which
will be name
along with a time stamp. The hencforth updations will continue in
the file name
specified in the properties file
*/
static void DbLogAppend(String appendValue){
System.out.println("Entering the static method in file1");
WriteToFile(appendValue);
}
static void WriteToFile(String appendValue){
try{
java.util.Properties props = new java.util.Properties();
java.net.URL url = ClassLoader.getSystemResource("props.properties");
props.load(url.openStream());
String fileName = (String)props.get("filename");
String fileMaxSize = (String)props.get("fileMaxSize");
Long longFileMaxSize =new Long(Long.parseLong(fileMaxSize));
long longFileMaxSizept = (long)longFileMaxSize;
String nameRename;
java.io.File file;
java.io.File file2;
Calendar c = Calendar.getInstance();
String date1= new String();
Pattern p = Pattern.compile(":");
String s = new String();
Date now = new Date();
long length;
BufferedWriter out = null;
try {
file = new java.io.File(fileName);
// Create file if it does not exist
boolean exist = file.createNewFile();
if (!exist){
System.out.println("File already exists.");
}else{
System.out.println("File created successfully.");
}
length = file.length();
if(length == longFileMaxSizept || length > longFileMaxSizept){
System.out.println("lenght is "+length);
s = DateFormat.getDateTimeInstance().format(now);
// Create a matcher with an input string
Matcher m = p.matcher(s);
StringBuffer sb = new StringBuffer();
boolean result = m.find();
// Loop through and create a new String with the replacements
while(result) {
m.appendReplacement(sb, "_");
result = m.find();
}
// Add the last segment of input to the new String
m.appendTail(sb);
System.out.println(sb.toString());
// File (or directory) with new name
System.out.println("entering here");
file2 = new java.io.File(file+sb.toString());
// Rename file (or directory)
boolean success = file.renameTo(file2);
if (success) {
System.out.println("Successfully renamed !");
boolean success1 = file.delete();
if (success1){
System.out.println("Successfully deleted !");
}
else
System.out.println("Could not be delted!");
// File was not successfully renamed
}
else{
System.out.println("renaming failed");
}
}
out = new BufferedWriter(new FileWriter(file, true));
out.newLine();
/* uncomment this for non-windows files*/
//out.write("\r");
out.write(appendValue);
out.close();
}catch (IOException e) { //end of try
}
catch(Exception e1){
}
finally {
try{
out.close();
}catch(Exception e){
e.printStackTrace();
}
}
}catch(Exception e){
e.printStackTrace();
}
}
}
***********************
The properties file :
**********************
filename=C://dblog
#in bytes
fileMaxSize=1024
************************
To use it :
*********************
DbLog.DbLogAppend("Tested for db updateasd");
*******************
I would appreciate if someone has tips on improving this code.
Rgds