1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
| import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
public class ModiFile {
public static boolean modiFile(String name) throws IOException {
String xmlline = null;
int XMLVers = LectureXML.lectureXML(name);
int XSLVers = LectureXSL.lectureXSL(name);
if (XSLVers < XMLVers) {
DataInputStream in = null;
BufferedReader br = null;
try {
// Open the file
FileInputStream fstream = new FileInputStream(FilePath.pathXSL(name));
// Get the object of DataInputStream
in = new DataInputStream(fstream);
br = new BufferedReader(new InputStreamReader(in));
String strLine;
// Put version number in string
String versionstr = (String.valueOf(XMLVers));
versionstr = versionstr.substring(0, 2) + "."+ versionstr.substring(2, 4);
// Go to the 2nd line
br.readLine();
strLine = (br.readLine());
xmlline = strLine.substring(0, 218) + versionstr+ strLine.substring(223, strLine.length());
// Close the input stream
} catch (Exception e) {// Catch exception if any
System.err.println("Error reading XSL file : " + e.getMessage());
} finally {
in.close();
br.close();
}
BufferedReader reader = null;
BufferedWriter out = null;
BufferedWriter outback = null;
try {
// Create file
File backup = new File(FilePath.pathBackupXSL(name));
if (backup.exists() == false) {
backup.createNewFile();
}
reader = new BufferedReader(new InputStreamReader(new FileInputStream(FilePath.pathXSL(name))));
StringBuffer sb = new StringBuffer();
StringBuffer back = new StringBuffer();
String line;
int nbLinesRead = 0;
while ((line = reader.readLine()) != null) {
back.append(line + "\n");
if (nbLinesRead != 1) {
sb.append(line + "\n");
} else
sb.append(xmlline + "\n");
nbLinesRead++;
}
reader.close();
out = new BufferedWriter(new FileWriter(FilePath.pathXSL(name)));
outback = new BufferedWriter(new FileWriter(FilePath.pathBackupXSL(name)));
outback.write(back.toString());
out.write(sb.toString());
System.out.println("Modification Done and backup name is : "+ FilePath.pathBackupXSL(name));
} catch (Exception e) {
System.err.println("Error Create File / Copy File : "+ e.getMessage());
} finally {
outback.flush();
outback.close();
out.flush();
out.close();
}
} else
System.out.println("XML/XSL versions already equals for " + name+ " file.");
return true;
}
} |