1 范例: 2 public class PetDemo { 3 public static void main(String[] args) throws IOException { 4 BufferedWriter bw = null; 5 BufferedReader br = null; 6 BufferedWriter modify_bw = null; 7 try { 8 //1.创建模板文件 9 bw = new BufferedWriter(new FileWriter(new File("E:\\Java实训课总结\\2016.3.26" + File.separator + "pet.template"))); 10 bw.write("替换前:"); 11 bw.append("您好!我的名字是{name},我是一只{type}。我的主人是{master}。"); 12 bw.flush(); 13 //2.读取模板文件的信息 14 br = new BufferedReader(new FileReader("E:\\Java实训课总结\\2016.3.26" + File.separator + "pet.template")); 15 String line = br.readLine(); ★★★同一个对象,readLine每用到一次 ,就是一行!!!★★★ 16 System.out.println(line); 17 //3.替换文件信息后,写入新的文本文件中 18 String modify_line = line; 19 modify_line = line.replace("替换前:", "替换后:"); 20 ★★★每次更新内容就赋值一次!!!★★★ 21 modify_line = modify_line.replace("{name}", "lili"); 22 modify_line = modify_line.replace("{type}", "拉布拉多"); 23 modify_line = modify_line.replace("{master}", "王刚"); 24 System.out.println(modify_line); 25 modify_bw = new BufferedWriter(new FileWriter(new File("E:\\Java实训课总结\\2016.3.26" + File.separator + "pet.txt"))); 26 modify_bw.append(modify_line); 27 modify_bw.flush(); 28 } catch (IOException e) { 29 e.printStackTrace(); 30 } finally { 31 modify_bw.close(); 32 br.close(); 33 bw.close(); 34 } 35 } 36 } 37 38 39 范例1:/*方法1:UUID*/ 40 public class FileMethodDemo { 41 public void creatFileFolder(String path) throws IOException{ 42 File file = new File(path); 43 if (!file.exists()) { 44 //创建文件夹 45 file.mkdir(); 46 System.out.println("创建文件成功!"); 47 } 48 } 49 50 public void creatFile(String fileName) throws IOException{ 51 File file = new File(fileName); 52 if (!file.exists()) { 53 //创建文件 54 file.createNewFile(); 55 System.out.println("创建文件成功!"); 56 } 57 } 58 59 //删除文件 60 public void delFile(String fileName){ 61 File file = new File(fileName); 62 if (file.exists()) { 63 file.delete(); 64 System.out.println("删除文件成功!"); 65 } 66 } 67 68 //清理文件 69 public void delAllFile(String path){ 70 File file = new File(path); 71 if (file.exists()) { 72 file.delete(); 73 } 74 } 75 } 76 77 //测试 78 public class D_demotxt { 79 public static void main(String[] args) throws IOException { 80 FileMethodDemo fm = new FileMethodDemo(); //调用FileMethodDemo中的方法 81 String path = "E:\\Java实训课总结\\2016.3.25\\Demo100"; 82 //清理文件中的已有的文件 83 fm.delAllFile(path); 84 try { 85 //1.创建文件夹 86 fm.creatFileFolder(path); 87 //2.创建文件 88 ArrayList<String> nameArr = new ArrayList<String>(); 89 //随机唯一的名字,放在集合中 90 for (int i = 0; i < 100; i++) { 91 UUID uuid = UUID.randomUUID(); 92 String fileName = uuid.toString(); 93 nameArr.add(fileName); 94 } 95 96 //3.生成100个文件名字 97 for (int i = 0; i < nameArr.size(); i++) { 98 String filepath = path + File.separator + nameArr.get(i) + ".txt"; 99 fm.creatFile(filepath); 100 } 101 102 //3.找出开头a的文件 103 for (int i = 0; i < 100; i++) { 104 if (nameArr.get(i).startsWith("a")) { 105 String str = path + File.separator + nameArr.get(i) + ".txt"; 106 fm.delFile(str); 107 System.out.println(str); 108 } 109 } 110 } catch (IOException e) { 111 e.printStackTrace(); 112 } 113 } 114 } 115 116 117 范例1:/*方法2:Map*/ 118 /*学生类*/ 119 public class Student { 120 private String name; 121 private String[] xin = new String[]{"丁","王","徐","汤","独孤","李"}; 122 private String[] ming = new String[]{"强","求败","建国","援朝","翠花","狗蛋","嫚","凯","程琳"}; 123 124 public Student(){ 125 Random rd = new Random(); 126 this.name = xin[rd.nextInt(xin.length)] + ming[rd.nextInt(ming.length)]; 127 } 128 129 public String getName() { 130 return name; 131 } 132 public void setName(String name) { 133 this.name = name; 134 } 135 } 136 137 /*测试类*/ 138 public class ImproveDulName { 139 public static void main(String[] args){ 140 Map<Integer, Student> map = new HashMap<Integer, Student>(); 141 /*存数据*/ 142 for (int i = 0; i <= 15; i++) { 143 map.put(i, new Student()); 144 } 145 //标识重复的名字 146 String dulName = null; 147 for (int j = 0; j < map.size(); j++) { 148 for (int j2 = j+1; j2 < map.size(); j2++) { 149 if (map.get(j).getName().equals(map.get(j2).getName())) { 150 map.get(j).setName(map.get(j).getName() + "*"); 151 map.put(j, map.get(j)); 152 if (map.get(j2).getName().startsWith("徐")) { 153 System.out.println("学号:" + (j2 + 1) + "," + map.get(j2).getName()); 154 } 155 break; 156 } else{ 157 map.put(j, map.get(j)); 158 } 159 } 160 } 161 162 //构建字符流对象 163 BufferedWriter bw = null; 164 try { 165 bw = new BufferedWriter(new FileWriter("E:\\Java实训课总结\\2016.3.24\\ImprovedulplicateName.txt")); 166 for (int j = 0; j < map.size(); j++) { 167 bw.append("学号:" + (j + 1) + "," + map.get(j).getName()); 168 bw.newLine(); 169 bw.flush(); 170 } 171 } catch (Exception e) { 172 e.printStackTrace(); 173 } finally { 174 try { 175 bw.close(); 176 } catch (IOException e) { 177 e.printStackTrace(); 178 } 179 } 180 } 181 } 182 183 184 范例1:/*方法3:重复3次以上的名字打星号*/ 185 /*学生类*/ 186 public class Student { 187 private String familyName; 188 private String givenName; 189 private int flag;//重名的标记 190 private String name; 191 private int count; 192 193 public Student(){ 194 //随机填充一个名字 195 Random rd = new Random(); 196 this.familyName = MyUtil.familyName[rd.nextInt(MyUtil.familyName.length)]; 197 this.givenName = MyUtil.givenName[rd.nextInt(MyUtil.givenName.length)]; 198 this.flag = 0;//假设初始的状态都不同 199 this.name = this.familyName + this.givenName; 200 this.count = 1; 201 } 202 203 public Student(String familyName, String givenName, int flag) { 204 this.familyName = familyName; 205 this.givenName = givenName; 206 this.flag = flag; 207 this.name = this.familyName + this.givenName; 208 this.count = 1; 209 } 210 211 @Override 212 public String toString() { 213 return "Student [familyName=" + familyName + ", givenName=" + givenName + ", flag=" + flag + ", name=" + name 214 + ", count=" + count + "]"; 215 } 216 217 public String getName() { 218 return name; 219 } 220 public void setName() { 221 this.name = this.familyName + this.givenName; 222 } 223 public String getFamilyName() { 224 return familyName; 225 } 226 public void setFamilyName(String familyName) { 227 this.familyName = familyName; 228 } 229 public String getGivenName() { 230 return givenName; 231 } 232 public void setGivenName(String givenName) { 233 this.givenName = givenName; 234 } 235 public int getFlag() { 236 return flag; 237 } 238 public void setFlag(int flag) { 239 this.flag = flag; 240 } 241 public int getCount() { 242 return count; 243 } 244 public void setCount(int count) { 245 this.count = count; 246 } 247 248 //测试 249 public static void main(String[] args) { 250 List<Student> al = new ArrayList<Student>(); 251 for (int i = 0; i < 50; i++) { 252 Student stu = new Student(); 253 al.add(stu); 254 System.out.println(stu); 255 } 256 257 StudentOP sop = new StudentOP(); 258 // sop.changeFlagforDulName(al); 259 sop.changeFlagforThrName(al); 260 //测试修改成功与否 261 for (Student stu : al) { 262 System.out.println(stu); 263 } 264 265 //测试写文件 266 sop.WriteToTxt(al); 267 } 268 } 269 /*学生操作类*/ 270 public class StudentOP { 271 //1.对学生对象的姓名重复的,把flag重置为1 272 public void changeFlagforDulName(List<Student> stuArr){ 273 //遍历数组,把重名的flag重置为1 274 for (int i = 0; i < stuArr.size(); i++) { 275 for (int j = i + 1; j < stuArr.size(); j++) { 276 if (stuArr.get(i).getName().equals(stuArr.get(j).getName())) { 277 stuArr.get(i).setFlag(1); 278 // stuArr.get(j).setFlag(1); 279 } 280 } 281 } 282 } 283 284 //2.重复三次的姓名标记 285 public void changeFlagforThrName(List<Student> stuArr){ 286 //遍历数组,把重名的flag重置为1 287 changeFlagforDulName(stuArr); 288 for (int i = 0; i < stuArr.size(); i++) { 289 int count = stuArr.get(i).getCount(); 290 for (int j = i + 1; j < stuArr.size(); j++) { 291 if (stuArr.get(i).getName().equals(stuArr.get(j).getName())) { 292 stuArr.get(i).setCount(++count); 293 int my = stuArr.get(i).getCount(); 294 stuArr.get(j).setCount(my); 295 } 296 } 297 } 298 } 299 300 public void WriteToTxt(List<Student> stuArr){ 301 BufferedWriter bw = null; 302 try { 303 bw = new BufferedWriter(new FileWriter("E:\\Java实训课总结\\2016.3.28\\100rd_name.txt")); 304 for (Student stu : stuArr) { 305 // if (stu.getFlag() == 1) { 306 if (stu.getCount() == 3) { 307 bw.write(stu.getName() + "*"); 308 } else { 309 bw.write(stu.getName()); 310 } 311 bw.newLine(); 312 } 313 } catch (IOException e) { 314 e.printStackTrace(); 315 } finally { 316 try { 317 bw.flush(); 318 bw.close(); 319 } catch (IOException e) { 320 e.printStackTrace(); 321 } 322 } 323 } 324 } 325 /*随机姓和名类*/ 326 public class MyUtil { 327 public static String[] familyName = {"王","李","徐","温","张","刘"}; 328 public static String[] givenName = {"丽丽","峰","仲基","嫚","学友","佳丽","凯"}; 329 }
原文:http://www.cnblogs.com/ivy-xu/p/5330535.html