1 6 7 package com.quikj.application.utilities.postinstall; 8 9 import java.util.*; 10 import java.io.*; 11 12 16 public class ReplaceString 17 { 18 private ArrayList files = new ArrayList(); 19 private String stringToReplace; 20 private String stringNewValue; 21 private String errorMessage = ""; 22 private int numReplaced = 0; 23 24 25 public ReplaceString() 26 { 27 } 28 29 public void addFile(String filename) 30 { 31 files.add(filename); 32 } 33 34 public int numFiles() 35 { 36 return files.size(); 37 } 38 39 public String getFileAt (int index) 40 { 41 return (String )files.get(index); 42 } 43 44 48 public java.lang.String getStringToReplace() 49 { 50 return stringToReplace; 51 } 52 53 57 public void setStringToReplace(java.lang.String stringToReplace) 58 { 59 this.stringToReplace = stringToReplace; 60 } 61 62 66 public java.lang.String getStringNewValue() 67 { 68 return stringNewValue; 69 } 70 71 75 public void setStringNewValue(java.lang.String stringNewValue) 76 { 77 this.stringNewValue = stringNewValue; 78 } 79 80 public boolean replace() 81 { 82 int size = numFiles(); 83 char[] arr = new char[100]; 84 85 for (int i = 0; i < size; i++) 86 { 87 String filename = getFileAt(i); 88 89 StringBuffer buffer = new StringBuffer (); 91 92 try 93 { 94 FileReader reader = new FileReader(filename); 95 int len = 0; 96 while (len >= 0) 97 { 98 len = reader.read(arr); 99 if (len < 0) { 101 break; 102 } 103 104 buffer.append (arr, 0, len); 105 } 106 107 String replaced = replaceString(buffer.toString()); 109 if (replaced == null) 110 { 111 return false; 112 } 113 114 FileWriter writer = new FileWriter(filename); 116 writer.write(replaced); 117 writer.close(); 118 } 119 catch (FileNotFoundException ex) 120 { 121 continue; 122 } 123 catch (IOException ex) 124 { 125 errorMessage = "IO error occured while reading/writing from/to file " + filename 126 + " : " + ex.getMessage(); 127 return false; 128 } 129 } 130 131 return true; 132 } 133 134 private String replaceString(String buffer) 135 { 136 char[] array = buffer.toCharArray(); 137 StringBuffer new_buffer = new StringBuffer (); 138 139 int search_length = stringToReplace.length(); 140 for (int i = 0; i < array.length; i++) 141 { 142 if ((array.length - i) < search_length) 143 { 144 new_buffer.append (buffer.substring(i)); 145 break; } 147 148 String part_string = buffer.substring(i, i + search_length); 149 if (stringToReplace.equals(part_string) == true) 150 { 151 numReplaced++; 152 new_buffer.append(stringNewValue); 153 i += search_length - 1; 154 } 155 else 156 { 157 new_buffer.append(array[i]); 158 } 159 } 160 161 return new_buffer.toString(); 162 } 163 164 168 public java.lang.String getErrorMessage() 169 { 170 return errorMessage; 171 } 172 173 177 public void setErrorMessage(java.lang.String errorMessage) 178 { 179 this.errorMessage = errorMessage; 180 } 181 182 186 public int getNumReplaced() 187 { 188 return numReplaced; 189 } 190 191 195 public void setNumReplaced(int numReplaced) 196 { 197 this.numReplaced = numReplaced; 198 } 199 200 public static void main(String [] args) 202 { 203 ReplaceString str = new ReplaceString(); 204 str.addFile("/usr/java/ace/src/java/com/quikj/application/utilities/postinstall/test.txt"); 205 str.setStringToReplace("TEST"); 206 str.setStringNewValue("NEW TEST VALUE"); 207 208 if (str.replace() == false) 209 { 210 System.out.println(str.getErrorMessage()); 211 } 212 } 213 } 214 | Popular Tags |